私は今、HTMLを学習しており、エンコーディングに関連する1つの側面が私を混乱させます。HTML文書の `<meta charset =" B ">`の意味
私のテストエディタを開き、HTMLコードを書いて、文字セットA(たとえば、UTF-8またはANSIなど)を使用して保存します。そして、私の見解では次の処理が行われます。
私が入力したすべての文字が特定の番号にマッピングされ、マッピングが文字セットAによって指定されます。
番号が Sの配列および Sとしてのそれらのバイナリ表現にコンピュータメモリに保存されています。私はちょうどBがは異なる別の文字セットである行
<meta charset="B">
がある保存したHTML文書で
。
ブラウザでHTML文書を開こうとするとどうなりますか?文字セットB sとのシーケンスが誤った文字(私がドキュメントを書いたときの意味ではない)を構成し、ゴミが表示されます。
この質問でわかるように、私は<meta charset="B">
の本当の意味をHTML文書で理解しようとしています。
フォローアップの質問をさせていただきます。 HTMLのデコードを開始するブラウザは、最初に ''という行をデコードする必要がありますが、使用する文字セットがわからないので行えません。 'はまだありません。 –
ああ、catch 22実際には、 'Content-Type' HTTPヘッダーが' '要素をオーバーライドし、文書のエンコーディングを指定するのが主に望ましい方法です。行方不明の場合、ブラウザはさまざまな手法を採用しています。一言で言えば、1)エンコーディングを推測しようとするために数バイトを調べる、2)最初のキロバイトをデコードして、 ' 'の文字セット宣言が見つかるかどうかを調べる、3)情報に基づいた推測で再起動する。そのため、 ''要素が文書の最初のものの1つであるべきです。 – deceze