2013-05-12 13 views

答えて

10

このようなmetaタグが存在するかどうかにかかわらず、ブラウザとユーザエージェントはまず、HTTPヘッダーを調べてそこにエンコード情報を見つけます。実際には、HTML5 CRのセクション8.2.2.1 Determining the character encodingで説明されているように、ユーザー設定を尊重してBOMスニッフィングを行う前でさえ、この問題では、単に提案されたノルムではなく、リアリティの説明です。

答えは本当に「それは依存している」。多くの場合、metaタグは無視されるので、HTTPヘッダーが失われるように、HTMLドキュメントがローカルに保存される状況を除いて、省略すると効果はありません。多くの場合、無視されませんが、省略された場合、ブラウザは正しいエンコードを推論します。そして、場合によっては、タグがブラウザに正しいエンコーディングを使用させる唯一のものである場合、それを省略すると、通常、バイトがWindows-1252エンコーディングで解釈されるようにデータの誤った解釈が発生します。これは実際のコンテンツに依存します。

10

<meta charset="utf-8">を指定しないとどうなりますか? HTML文書のHEADには?

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

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

とContent-Typeヘッダは、異なるユーザエージェントに依存charsetを指定していない場合物事が起こるかもしれない。いくつかのユーザエージェントは発見的手法を使用して、既知のエンコーディングを探しているレスポンスストリームからのバイトの一部を解析することにより、の正しい文字セットを推測することがあります()。これが失敗した場合は、ASCII範囲外の文字を使用した場所の疑問符や奇妙な記号がWebページに表示されることがあります。

+0

この回答は、HTTPヘッダーが常に最初に検査されるため、誤解を招くことがあります。 – user123444555621

関連する問題