サーバーとブラウザは、インターネット経由でデータをバイト単位で送信することで相互に通信します。サーバーが HTML ファイルを送信するときに、使用している文字エンコード形式を指定しない場合、ブラウザは各バイトがどの文字を表しているかわかりません。この問題は、文字エンコードの宣言の仕様で解決できます。
遅延 <meta charset> 要素(ドキュメントの最初の 1,024 バイトに完全に含まれていない要素)は、読み込みパフォーマンスに大きな影響を与える可能性があります。ブラウザは 1 つの文字エンコードを想定しますが、後でその想定が間違っていたことが判明した場合、HTML の解析を最初からやり直す必要があるためです。
この分析情報を渡す方法
インサイトは、次のいずれかが見つかった場合、文字エンコーディングが宣言されていると見なします。
- ドキュメントの
<head>内の<meta charset>要素が、ドキュメントの最初の 1,024 バイトに完全に含まれている - 有効な IANA 名と一致する
charsetディレクティブを含むContent-TypeHTTP レスポンス ヘッダー
分析情報を合格させるには、これらのいずれか 1 つを設定する必要があります。
HTML に <meta charset> 要素を追加する
HTML ドキュメントの最初の 1,024 バイト内に <meta charset> 要素を追加します。要素は最初の 1,024 バイト内に完全に含まれている必要があります。効果的な手法は、ドキュメントの <head> の最初の要素を <meta charset> 要素にすることです。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
…
Content-Type HTTP レスポンス ヘッダーを追加する
charset ディレクティブを含む Content-Type HTTP レスポンス ヘッダーを追加するようにサーバーを構成します。
Content-Type: text/html; charset=UTF-8