38

<meta charset="utf-8">HTML ドキュメントの HEAD で指定しないとどうなりますか?

4

3 に答える 3

23

このようなmetaタグが存在するかどうかに関係なく、ブラウザーとユーザー エージェントはまず HTTP ヘッダーを調べて、そこでエンコード情報を見つけます。実際には、セクション 8.2.2.1 HTML5 CR での文字エンコーディングの決定で説明されているように、ユーザー設定を尊重し、BOM スニッフィングを行う前に、これは単に提案された規範ではなく現実の説明です。

したがって、答えは本当に「場合による」です。多くの場合、このmetaタグは無視されるため、タグを省略しても効果はありません。ただし、HTML ドキュメントがローカルに保存されている (HTTP ヘッダーが失われる) 場合を除きます。他の多くの場合、無視されませんが、省略された場合でも、ブラウザは正しいエンコーディングを推測します。また、場合によっては、ブラウザが正しいエンコーディングを使用する唯一の要素がタグである場合、それを省略するとデータが誤って解釈され、通常はバイトが windows-1252 エンコーディングで解釈されます。これが何を意味するかは、実際のコンテンツによって異なります。

于 2013-05-12T11:26:22.490 に答える
17

を指定しないとどうなります<meta charset="utf-8">か? HTML ドキュメントの HEAD に?

ユーザー エージェントは、サーバーから送信された Content-Type 応答 HTTP ヘッダーを探します。

Content-Type: text/html; charset=utf-8

また、Content-Type ヘッダーが指定されていないcharset場合、ユーザー エージェントによっては、さまざまなことが発生する可能性があります。一部のユーザー エージェントは、ヒューリスティックを使用して、既知のエンコーディングを探して応答ストリームからのバイトの一部を分析することにより、正しい文字セットを推測しようとする場合があります。これが失敗すると、Web ページの ASCII 範囲外の文字を使用した場所にいくつかの疑問符や奇妙な記号が表示される可能性があります。

于 2013-05-12T08:10:59.140 に答える