<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>に関する<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>参照処理モデル</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">Reference Processing Model</rt></rubyb></dfn>とは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> を用いて規定を定め、実際に使われている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>はその <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
の文字列を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>したものとみなす、というものです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 実装は必ずしもこのモデルに従う必要はありませんが、従っているかのように振る舞うことが求められています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> このモデルは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 2.x</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2070</anchor>) で導入され、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML4</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS2</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM1</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> などその後の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> 関連技術に広がっていきました。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML4</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書文字集合</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646</anchor> (≒ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>) でした。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML文書</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Shift_JIS</anchor> でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-8859-1</anchor> でも構いませんが、
いずれにせよ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> に変換してから解釈される、とされていました。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 現在の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>に関する仕様である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encoding Standard</anchor>
も、基本的にはこの方針の延長線上にあります。</p><section><h1>参照処理モデルに従う仕様</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> 明示的または暗示的に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>に従っていた仕様には、次のものがありました。<figure class="short list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 2.x</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML4</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS2</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor></li></ul></figure></p></section><section><h1>文字コードの種類</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>に従う仕様は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA charset</anchor> によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の指定が行えるのが普通でしたが、
実際には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA charset</anchor> として登録されていないものも使われていました。
いずれにせよ、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>としては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の種類は限定されていませんでした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> ただし概念上 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> として扱うという性質から、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
で表現できない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>は扱うことができません。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> で表現できない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>を含む<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>を扱うことはできますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> で表現できない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>は <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+FFFD</anchor></code>
などに対応付けられているものとみなすことになります。)</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> より後の時代の仕様は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> のみに限定していることがあります。
更に時代が下ると <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> のみとするのが一般的になります。</comment-p></section><section><h1>文字参照</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>の確立以前は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor>の意味は曖昧でした。
たとえ仕様上何らかの意味が定められていたとしても、
それは便宜上たまたまそう記述されたといってよく、
実態を反映したものではありませんでした。
しかし<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>により、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>を表していることが明確になりました。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 90年代中頃には、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体参照</anchor>すら意味は曖昧で、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Latin1</anchor> のつもりで使われた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体参照</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフトJIS</anchor>で同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>で表される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">半角カナ</anchor>の意味で使われたり、表示されたりすることまでありました。</p></example><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>を表すとされたのに対し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">パーセント符号化</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>を表すとされ、
意味が分岐しました。</comment-p></section><section><h1>文字コードの意味の変化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>は、既存の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の意味を変化させました。従来の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>は、
含まれる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の集合も定義も、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化方式</anchor>も独自に定義していました。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>はその独自の集合と定義を無視し、
どの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> という単一の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化文字集合</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化方式</anchor>の違いに過ぎないものと読み替えていきました。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 0208:1997</anchor> は 0x89 0xA8 (に相当する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">区点位置</anchor>) に
<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鴎</sw-ch>と<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鷗</sw-ch>とを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">包摂</anchor>していますから、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Shift_JIS</anchor> の本来の定義からすると
0x89 0xA8 は<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鴎</sw-ch>でも<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鷗</sw-ch>でもある (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>では区別されない) 
と解釈できます。
ところが
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
の<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鴎</sw-ch>と<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鷗</sw-ch>はまったくべつの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>に割り当てられた異なる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字集合</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> および<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化方式</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Shift_JIS</anchor> の定義を組み合わせると
0x89 0xA8
に相当する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字</anchor>は<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鴎</sw-ch>です。
従って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>に従う解釈では
0x89 0xA8 は<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鴎</sw-ch>でしかありません。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> 
この意味で、 
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 0208:1997</anchor> の規定する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフト符号化表現</anchor>」と
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>における
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Shift_JIS</anchor>」 は別の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>とも解釈できます。</p></example></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>の確立以前は、仕様は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Latin-1</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-8859-1</anchor>) 
ベースに定義されていることが多く、
一方で実装はその動作するシステムの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>で実装されていて、
いくつかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の変換にも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対応<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字コード指定メニュー</title></anchor>している、といった感じでした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>はそれぞれの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>の環境で表示確認されるため、
それぞれのシステムの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>が使われることとなり、
同一言語圏で複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>が使われている場合や、
他の言語圏の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>を閲覧しようとした場合には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字化け</anchor>が多発していました。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語版</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows 95</anchor> で動作する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape Navigator 1</anchor> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフトJIS</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CP932</anchor>) で実装されていました。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EUC-JP</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-2022-JP</anchor>
の表示にも対応していましたが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-8859-1</anchor> には対応しておらず、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフトJIS</anchor> 
として解釈されて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">半角カナ</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字化け</anchor>しました。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 当時の正式な仕様であった <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 2.0</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 3.2</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-8859-1</anchor>
を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書文字集合</anchor>としていましたが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">欧米ではそう実装されているだけ<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">公式が勝手に言っているだけ</title></anchor>であって、
実態とは異なっていました。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語</anchor>その他欧米以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 2.0</anchor>
より前に既に広く用いられていました。)</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 2.0</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 3.2</anchor> では日本語文字を使えないという解釈が00年代初期に流行したことがありますが、
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML応用</anchor>である」という虚構と同様に、その時代の制約のもとでの標準化の限界と捉えるべきでしょう。</comment-p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> 現在の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内部コード</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> としていますが、
初期の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> はその <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内部コード</anchor>、
すなわちそのシステムの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内部コード</anchor>で動作していました。</p></example><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en">RFC 2070 - Internationalization of the Hypertext Markup Language</cite>
( (<time>2014-02-02 16:11:39 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc2070#section-2.1">http://tools.ietf.org/html/rfc2070#section-2.1</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>が仕様化 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src> された当時 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">90年代</anchor>末) 
は実データの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> への統一はまだ現実的ではありませんでした。
仕様上は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 
が中心となっていましたが
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(他に世界中の<anchor>文字</anchor>を扱うための現実的な選択肢はありませんでした)</weak>、
それに限定するには時期尚早すぎました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 90年代末には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NT</anchor> 系に移行してゆき、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCS-2</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor>
を内部コードにして <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W</anchor> 系 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Win32 API</anchor> を使う実装が (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>に限らず)
増えていきました。他のシステムでも同様に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> の普及が進み、
自然と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>に沿った実装に収束していきました。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">Character Model for the World Wide Web 1.0: Fundamentals</cite>
( (<time>2005-02-15 14:24:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/charmod/#def-ref-proc-model">http://www.w3.org/TR/charmod/#def-ref-proc-model</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">I18N Core WG</anchor> は後に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charmod</anchor> において改めて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>を文書化しています
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>から10年以上が経過して、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webの文字コード</anchor>はようやく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
に収束しつつあります。2011年の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encoding Standard</anchor> は新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>に 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> の利用を義務付けています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> この間、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C</anchor> のポリシーは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor> → <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> 
などに対応しないといけない (他もあってよい) → <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> などに限定するべきと徐々に限定されていきました。
00年代後半になって <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> が利用実態がないとして <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> で使用禁止になり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII互換</anchor>でないため <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encoding Standard</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レガシー符号化</anchor>に分類されています。</comment-p></section></body></html>