<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="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</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>が使われています。</p><section><h1>仕様書</h1><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="177" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[177]</anchor-end> 
<cite xml:lang="en-US-x-hixie">HTML Standard</cite>, <time>2025-12-02T11:20:51.000Z</time>, <time>2025-12-07T11:08:56.643Z</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="https://html.spec.whatwg.org/#character-encodings">https://html.spec.whatwg.org/#character-encodings</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[104]</anchor-end> 
<cite xml:lang="en-US-x-hixie">HTML Standard</cite>, <time>2025-11-04T10:59:41.000Z</time>, <time>2025-11-09T01:33:40.054Z</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="https://html.spec.whatwg.org/#determining-the-character-encoding">https://html.spec.whatwg.org/#determining-the-character-encoding</anchor-external></li></ul></refs></section><section><h1>Web と文字コードの現在</h1><figure class="middle list"><figcaption><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> <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></figcaption><ul><li><code>DOMString</code></li><li><code>USVString</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード指定メニュー</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPにおける文字コード</anchor></li><li><code>charset</code></li><li><code>inputEncoding</code></li><li><code>xmlEncoding</code></li><li><code>document.charset</code></li><li><code>document.characterSet</code></li><li><code>TextEncoder</code></li><li><code>TextDecoder</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTMLにおける文字コード</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:">CSSにおける文字コード</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenTypeにおける文字コード</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONにおける文字コード</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">US-ASCII</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-8859-1</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor></li><li><cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encoding Standard</anchor></cite></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WTF-8</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset sniffing</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UniversalCharDet</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">同型符号化</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">欄値</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化語</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5987</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor></li><li><code>\u</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS escape</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">パーセント符号化</anchor></li><li><code>unicode-range</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URLにおける文字</anchor></li></ul></figure><figure class="short list"><figcaption><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:">Web</anchor> と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の関連記事</figcaption><ul><li><code class="charname" xml:lang="en">NULL</code></li></ul></figure></section><section><h1>著者に対する要件</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="182" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[182]</anchor-end> 
現在の多くの仕様は <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:">著者</anchor>に求めています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>HTMLにおける文字コード</anchor>, <anchor>CSSにおける文字コード</anchor>, <anchor>JavaScriptにおける文字コード</anchor>, <anchor>WebVTT</anchor>, <code xmlns="http://www.w3.org/1999/xhtml">text/event-stream</code>, <code xmlns="http://www.w3.org/1999/xhtml">text/ping</code> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="183" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[183]</anchor-end> 
仕様で求められていなくても、多くの場合は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> が使われています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSON</anchor>, <anchor>XMLにおける文字コード</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="184" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[184]</anchor-end> 
過去の仕様ではそれ以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の利用も認められ、実際にいろいろが使われていました。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>HTMLにおける文字コード</anchor>, <anchor>CSSにおける文字コード</anchor>, <anchor>JavaScriptにおける文字コード</anchor>, <anchor>XMLにおける文字コード</anchor> </sw-see></p></section><section><h1>バイト列から文字列への変換</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <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><figure class="table"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</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>を得る場面</figcaption><dl><dt>c</dt><dd>場面</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>上の操作</dd><dt>stream</dt><dd>ストリーム出力</dd><dt>legacy</dt><dd>非 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor></dd><dt>user</dt><dd>上書き指定</dd><dt>ctmeta</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容型メタデータ</anchor></dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset sniffing</anchor></dd><dt>default</dt><dd>既定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字符号化</title></anchor></dd><dt>change</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化の変更</anchor></dd><dt>error</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤りモード</anchor></dd></dl><dl><dt>c</dt><dd><code class="DOMi" xml:lang="en">TextDecoder</code></dd><dt>spec</dt><dd><code class="DOMi" xml:lang="en">TextDecoder</code></dd><dt>stream</dt><dd>○</dd><dt>legacy</dt><dd>○</dd><dt>error</dt><dd>指定可</dd></dl><dl><dt>c</dt><dd><code class="DOMi" xml:lang="en">TextDecoder</code> (<code>ignoreBOM</code>)</dd><dt>spec</dt><dd><code class="DOMi" xml:lang="en">TextDecoder</code></dd><dt>stream</dt><dd>○</dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd>指定可</dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML構文解析器</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor></dd><dt>stream</dt><dd>○</dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML encoding sniffing</title></anchor></dd><dt>user</dt><dd>○</dd><dt>default</dt><dd>
1. <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親閲覧文脈</anchor>
2. <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UA</anchor>依存</dd><dt>change</dt><dd>○</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</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</anchor>)</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor></dd><dt>legacy</dt><dd>○</dd><dt>ctmeta</dt><dd>○</dd><dt>user</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor></dd><dt>default</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></dd><dt>error</dt><dd><code>replacement</code></dd></dl><p># <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML Imports</anchor></p><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML構文解析器</anchor></dd><dt>stream</dt><dd>○</dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">XML encoding sniffing</title></anchor></dd><dt>default</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></dd><dt>user</dt><dd>○</dd><dt>error</dt><dd>(<code>fatal<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fatal (符号化)</title></code>)</dd><dt>#</dt><dd>navigate, XSLT, responseXML, document.load</dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS構文解析器</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>から)</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor></dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">CSS encoding sniffing</title></anchor></dd><dt>default</dt><dd>
1. <code>charset<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">&lt;link charset&gt;</title></code>
2. <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文書の文字符号化</title></anchor></dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS構文解析器</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor> から)</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor></dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">CSS encoding sniffing</title></anchor></dd><dt>default</dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor></dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS構文解析器</anchor> (<code class="HTTP" xml:lang="en">Link:</code> から)</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor></dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">CSS encoding sniffing</title></anchor></dd><dt>default</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキストファイルのDOM構築</anchor></dd><dt>stream</dt><dd>○</dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>依存</dd><dt>default</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>依存</dd><dt>user</dt><dd>○</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト応答</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor>)</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor></dd><dt>stream</dt><dd>△</dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">XML encoding sniffing</title></anchor></dd><dt>default</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></dd><dt>user</dt><dd>○</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト応答</anchor> (非 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor>)</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor></dd><dt>stream</dt><dd>△</dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>default</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>user</dt><dd>○</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">package data</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></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor></dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><code class="URI" xml:lang="en">view-source:</code></dd><dt>stream</dt><dd>○</dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>依存</dd><dt>default</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>依存</dd><dt>user</dt><dd>○</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クリップボード</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">貼り付け</anchor></dd><dt>legacy</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>依存</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>依存</dd><dt>default</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>依存</dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">古典スクリプトのfetch</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor></dd><dt>stream</dt><dd>△</dd><dt>legacy</dt><dd>○</dd><dt>bom</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>ctmeta</dt><dd>○</dd><dt>sniffing</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">BOM sniffing</title></anchor></dd><dt>default</dt><dd>
1. <code>&lt;script charset&gt;</code>
2. <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文書の文字符号化</title></anchor></dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプトのfetch</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>古典スクリプトのfetch</anchor>以外)</weak></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor></dd><dt>stream</dt><dd>△</dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><code class="JS" xml:lang="en">javascript:</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor></dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON応答</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor>
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>バイト群からJSONを構文解析</anchor>)</weak></dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">package data</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor>
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>バイト群からJSONを構文解析</anchor>)</weak></dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><code class="MIME" xml:lang="en">application/manifest+json</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor></dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><code>payment-method-manifest</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor></dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><code>PushMessageData<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">bytes (PushMessageData)</title></code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor></dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebDriver</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Source Map</anchor></dd></dl><dl><dt>c</dt><dd><code class="JS" xml:lang="en">document.cookie</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号</anchor></dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">challenge</anchor> <code class="HTTP" xml:lang="en">realm</code></dd></dl><dl><dt>c</dt><dd><code class="HTTP" xml:lang="en">Content-Disposition:</code> <code class="MIME" xml:lang="en">filename</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Closeフレーム</anchor> <code class="DOMa" xml:lang="en">reason</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号</anchor></dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><cite>Web Transport Processing</cite> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebSocket</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキストフレーム</anchor></dd><dt>spec</dt><dd><code class="DOMi" xml:lang="en">TextDecoder</code></dd><dt>stream</dt><dd>○</dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><code class="MIME" xml:lang="en">text/event-stream</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor></dd><dt>stream</dt><dd>○</dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト構文解析器</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号</anchor>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号または失敗</anchor>)</dd><dt>error</dt><dd><code>replacement</code>
(<code>fatal<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fatal (符号化)</title></code>)</dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">パーセント復号</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号</anchor></dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><code class="JS" xml:lang="en">decodeURI</code></dd><dt>spec</dt><dd><code>Decode()</code></dd><dt>error</dt><dd><code class="JS" xml:lang="en">URIError</code></dd></dl><dl><dt>c</dt><dd><code class="JS" xml:lang="en">decodeURIComponent</code></dd><dt>spec</dt><dd><code>Decode()</code></dd><dt>error</dt><dd><code class="JS" xml:lang="en">URIError</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書の示された部分</anchor>決定</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号</anchor></dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><code class="URI" xml:lang="en">file:</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL path</anchor></dd></dl><dl><dt>c</dt><dd><code class="MIME" xml:lang="en">application/x-www-form-urlencoded</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(旧: <anchor>復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor>)</weak></dd><dt>legacy</dt><dd>△</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体素片</anchor></dd><dt>spec</dt><dd><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:">復号</anchor></dd><dt>error</dt><dd><code>fatal<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fatal (符号化)</title></code></dd></dl><dl><dt>c</dt><dd>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> 
<code class="MIME" xml:lang="en">multipart/form-data</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOMなしUTF-8復号</anchor></dd><dt>stream</dt><dd>△</dd><dt>legacy</dt><dd>△</dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">parse a manifest</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor></dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><code>m3u8</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebVTT構文解析器</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor></dd><dt>stream</dt><dd>△</dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列 (X.500)</anchor></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型をバイト列から構文解析</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">同型復号</anchor></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL構文解析器</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">同型復号</anchor></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">data:</code> URL処理器</anchor></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">同型復号</anchor></dd></dl><dl><dt>c</dt><dd><code>Refresh:</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">同型復号</anchor></dd></dl><dl><dt>c</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">get, decode, and split</anchor> (<code>Content-Type:</code>, <code>X-Content-Type-Options:</code> など)</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">同型復号</anchor></dd></dl><dl><dt>c</dt><dd><code>atob</code></dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">同型復号</anchor></dd></dl><dl><dt>c</dt><dd><cite>Web Transport Processing</cite> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>の値</dd><dt>spec</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">復号 (符号化)</title></anchor></dd><dt>legacy</dt><dd>△</dd><dt>bom</dt><dd>除去</dd><dt>error</dt><dd><code>replacement</code></dd></dl></figure><section><h1>encoding sniffing algorithm</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> <dfn>encoding sniffing algorithm</dfn> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset sniffing</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>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</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:">API</anchor> ごとに似て非なるものが各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>で分散して規定されています。</p><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM sniffing</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML encoding sniffing</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML encoding sniffing</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS encoding sniffing</anchor></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</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:">XHR</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</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor>, <code class="HTMLe" xml:lang="en">script</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">古典スクリプト</anchor>), <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト文書</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</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><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> 決定的指定<ul><li>[ <code>TextDecoder</code> ] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>の指示 (certain)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> [HTML, XML, テキスト文書] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の指示 (certain)  [ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">意図的違反</anchor> ]</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> [HTML] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化の変更</anchor>の結果 (certain)</li></ul></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM sniffing</anchor> (certain)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> 上書き指定<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> [HTML, XML, テキスト文書] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の指示 (certain)  [仕様上]</li><li>[XHR 文書応答 HTML] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">override charset</anchor> (certain)</li><li>[XHR テキスト応答] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">override charset</anchor></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> ([HTML] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">a known definite encoding</anchor> (certain) - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書応答</anchor>で使われる)</li></ul></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> <code class="MIME" xml:lang="en">charset</code> (certain)</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prescan</anchor><ol><li>[HTML] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prescan</anchor> (tentative)</li><li>[XHR 文書応答 HTML] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> prescan (certain)</li><li>[XML] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> prescan</li><li>[CSS] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor> prescan</li></ol></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境符号化</anchor> (明示的)<ol><li>[script] <code class="HTML">&lt;script charset&gt;</code></li><li>[CSS] <code class="HTML">&lt;link charset&gt;</code></li><li>[CSS] <code class="XML">&lt;?xml-stylesheet charset?&gt;</code></li></ol></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境符号化</anchor> (暗示的)<ol><li>[HTML] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親閲覧文脈</anchor> (tentative)</li><li>[HTML] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴</anchor> (tentative)</li><li>[CSS] 読み込み元<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></li><li>[CSS, script] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書の<f>文字符号化</f></anchor></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="126" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[126]</anchor-end> [HTML, テキスト文書] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頻度解析等の手法</anchor> (tentative)<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[127]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> の検出</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="128" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[128]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント依存符号化</anchor>の検出</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="130" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[130]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号構造</anchor>やバイト出現頻度などによる推定</li></ol></li><li>[HTML, テキスト文書] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ロケール</anchor> (tentative)</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor><ol><li>[HTML, テキスト文書] (tentative)</li><li>[XHR 文書応答 HTML] (certain)</li></ol></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="94" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[94]</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:">HTML文書</anchor>でも、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> で開かれるときと <code>responseXML</code>
で開かれるときとで<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="95" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[95]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ソース表示</anchor> (<code>view-source:</code>) について規定する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>はありませんが、
少なくても <cite>Firefox</cite> では通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML文書</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor>
と異なる判定を行っています。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平文文書</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> と 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML文書</anchor>の <code>view-source:</code> の判定方法が同じか異なるかは不明です。)
<time>2025-11-09T00:40:47.400Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="89" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[89]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset sniffing</anchor> に使うデータの長さについては、
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源ヘッダー</anchor>を参照。</p><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字コードの指定</anchor>, <anchor>文字コードの判定</anchor> </sw-see></p><section><h1>明示的な指定</h1><p><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:">著者</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="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</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:">GUI</anchor> に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード指定メニュー</anchor>を実装していました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CUI</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 sniffing algorithm</anchor> とその実装は完全ではないので、
こうした機能は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web互換性</anchor>のために必須です。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字コード指定メニュー</anchor> </sw-see></p><section><h1>a known definite encoding</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> <cite>HTML Standard</cite> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML構文解析器</anchor>は <dfn>a known definite encoding</dfn>
を指定可能であり、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</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</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構文解析器</anchor>の標準の (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> で使われる)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">encoding sniffing algorithm</anchor> のかわりに、独自の簡略化されたアルゴリズムを使っています。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> は先頭1024バイトから <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prescan</anchor> することを求めており、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> はより広い選択肢を提供しています。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</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:">HTML</anchor> は文脈からの推測、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UnivCharDet</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ロケール</anchor>依存の既定値を使います。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</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:">XHR</anchor> では起こりません。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">a known definite encoding</anchor> に指定する値である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">final 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:">符号化<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字符号化</title></anchor>ではないのですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> 側でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> 側でもなぜかその検査もしていません。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="144" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[144]</anchor-end> 
<cite xml:lang="en">Web Applications 1.0 r8073 Provide a hook for XHR and web components to incrementally decode with a known encoding</cite>
( (<time>2013-07-20 03:35: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://html5.org/tools/web-apps-tracker?from=8072&amp;to=8073">http://html5.org/tools/web-apps-tracker?from=8072&amp;to=8073</anchor-external></p></section></section><section><h1><sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> による判定</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="96" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[96]</anchor-end> 
<sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> による判定は、それのみを行う<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:">BOM sniffing</anchor>)
を始め、多くの操作が採用しています。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> 
仕様上 <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> は他の指定よりも優先されることになっています。 
これは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Trident</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebKit</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chromium</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="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;70</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> 
ただその根拠として示されている <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="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;71</anchor-internal></src> ページについて、現在
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Internet Archive</anchor> に保存されているものは、確かに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPヘッダー</anchor>に誤った
<code>charset</code> が指定されており、実態および <code>&lt;meta charset&gt;</code>
と矛盾していますが、 <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> は見当たりません <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="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;75</anchor-internal></src>。
同じサイトの議論より少し前の状態 <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="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;76</anchor-internal></src> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> <code>charset</code> がなく、
議論の頃には誤った <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> <code>charset</code> があり、
その少し後には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> <code>charset</code> がないのですが、
どの状態も <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> のない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> です。
あるいは <code>User-Agent:</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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> の挙動がそうなっていたというからには、
このサイト以外にもこの挙動に依存したサイトは存在していたのでしょうが...</comment-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="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> 
議論は白熱していますが <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;68</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;70</anchor-internal></src>、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> 世界の神学的「正しさ」などに注目が集まりながら、
報告者の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Anne</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Ian Hickson</anchor> 以外誰も実サイトの状況に関心を払っていないのは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">統計的手法<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Webの統計</title></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:">Ian Hickson</anchor> 
は間違いなく当時のサイトにアクセスしているはずで、
きっと報告通り <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> があると確認していると信じたいところですが、
他の誰も追試報告をしていないんですよね...</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> 
<cite>HTML Standard</cite> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の指示よりも <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> を最優先としていますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード指定メニュー</anchor>は <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> の誤認を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">上書き</anchor>出来るべきと思われます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</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="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;68</anchor-internal></src>
が、十分に検討されずに仕様が追随しただけのようです。</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="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> 
<cite xml:lang="en">12897 – In some parsers, UTF-8 BOM trumps the HTTP charset attribute (Encoding sniffing algorithm)</cite>, <time>2019-04-02T04:48:11.000Z</time>, <time>2025-11-08T15:21:29.731Z</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="https://www.w3.org/Bugs/Public/show_bug.cgi?id=12897">https://www.w3.org/Bugs/Public/show_bug.cgi?id=12897</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <cite xml:lang="en">15359 – Make BOM trump HTTP</cite>, <time>2019-04-02T04:48:11.000Z</time>, <time>2025-11-08T15:21:54.519Z</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="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15359">https://www.w3.org/Bugs/Public/show_bug.cgi?id=15359</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <cite xml:lang="en">17810 – Make BOM trump HTTP</cite>, <time>2019-04-02T04:48:11.000Z</time>, <time>2025-11-08T15:22:02.701Z</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="https://www.w3.org/Bugs/Public/show_bug.cgi?id=17810">https://www.w3.org/Bugs/Public/show_bug.cgi?id=17810</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> 
<cite xml:lang="en"><strong>[</strong>giow<strong>]</strong> (3) Make a BOM override HTTP headers. · whatwg/html@947be85 · GitHub</cite>, <time>2025-11-08T15:22:44.000Z</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="https://github.com/whatwg/html/commit/947be85f5d985de120a58c7832bf428cdf36e222#diff-41cf6794ba4200b839c53531555f0f3998df4cbb01a4d5cb0b94e3ca5e23947d">https://github.com/whatwg/html/commit/947be85f5d985de120a58c7832bf428cdf36e222#diff-41cf6794ba4200b839c53531555f0f3998df4cbb01a4d5cb0b94e3ca5e23947d</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> 
<cite>现代快报多媒体数字报刊平台</cite>, <time>2025-11-08T15:26:17.000Z</time>, <time>2010-12-05T14:53:27.450Z</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="https://web.archive.org/web/20101205144422/http://kb.dsqq.cn/html/2010-12/05/node_193.htm">https://web.archive.org/web/20101205144422/http://kb.dsqq.cn/html/2010-12/05/node_193.htm</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <cite>鐜颁唬蹇姤澶氬獟浣撴暟瀛楁姤鍒婂钩鍙�</cite>, <time>2025-11-08T15:28:54.000Z</time>, <time>2012-11-27T06:52:48.924Z</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="https://web.archive.org/web/20121127065239im_/http://kb.dsqq.cn/html/2012-09/16/node_193.htm">https://web.archive.org/web/20121127065239im_/http://kb.dsqq.cn/html/2012-09/16/node_193.htm</anchor-external></li></ul></refs><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="166" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[166]</anchor-end> 
<cite xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">716579 - BOM should override HTTP-level charset</cite>, <time xmlns="http://www.w3.org/1999/xhtml">2025-12-01T08:13:10.000Z</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="https://bugzilla.mozilla.org/show_bug.cgi?id=716579">https://bugzilla.mozilla.org/show_bug.cgi?id=716579</anchor-external></ed></section><section><h1>HTTP/MIME <code>charset</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="138" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[138]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">encoding sniffing algorithm</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>を使います。
<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="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;104</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="139" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[139]</anchor-end> 
<cite>HTML Standard</cite> は抽象化して明言していませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> の <code>Content-Type:</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>の
<code>charset</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</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="140" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[140]</anchor-end> 理論上は他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>の同様の指定も該当し得ますが、
実例があるのかは不明です。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="141" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[141]</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:">MIME型</anchor>の個々の規定は尊重されず、
およそ一律に <cite>Encoding Standard</cite> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化ラベル</anchor>とみなされているようです。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>charset</anchor>, <anchor>文字コードの決定</anchor>, <anchor>x-user-defined</anchor> </sw-see></p></section><section><h1>本文内の文字コード宣言</h1><section><h1><code>&lt;meta chaset&gt;</code></h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>&lt;meta charset&gt;</anchor> </sw-see></p></section><section><h1>XML 符号化宣言</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>encoding=&quot;&quot;</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="153" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[153]</anchor-end> <cite xml:lang="en">673087 - XML declaration in text/html not used as an internal character encoding declaration (due to WHATWG HTML compliance)</cite>, <time>2025-11-23T03:40:09.000Z</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="https://bugzilla.mozilla.org/show_bug.cgi?id=673087">https://bugzilla.mozilla.org/show_bug.cgi?id=673087</anchor-external></p></section></section><section><h1>環境からの継承</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="131" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[131]</anchor-end> 
明示的な指定がないときに呼び出し元の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>の情報、
すなわち<dfn>環境符号化</dfn>が使われることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> 
<cite>Firefox</cite>
は<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:">ASCII文字</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:">Windows-1252</anchor> は継承しないという配慮が必要なのでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="147" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[147]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;66</anchor-internal> <cite>Chrome</cite>
は同じように<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フレーム文書</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:">Windows-1252</anchor>
と判定されているときでも、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フレーム</anchor>内は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1252</anchor> と判断しないで内容で判断しているようです。
妥当な挙動でしょう。</p><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><box 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="149" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[149]</anchor-end> 
<cite xml:lang="en">6118 – Investigate not using the frameset charset as a default for frames</cite>, <time>2025-11-16T05:54:03.000Z</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="https://bugs.webkit.org/show_bug.cgi?id=6118">https://bugs.webkit.org/show_bug.cgi?id=6118</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="148" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[148]</anchor-end> <cite xml:lang="en">14683 – Incorrect charset at http://star.vnet.cn</cite>, <time>2025-11-16T05:53:31.000Z</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="https://bugs.webkit.org/show_bug.cgi?id=14683">https://bugs.webkit.org/show_bug.cgi?id=14683</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[143]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r7544     More detail on the inheritance of encodings from parent browsing contexts.</cite>
( (<time>2012-11-25 14:33: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://html5.org/tools/web-apps-tracker?from=7543&amp;to=7544">http://html5.org/tools/web-apps-tracker?from=7543&amp;to=7544</anchor-external></li></ul><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="159" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[159]</anchor-end> 
<cite>Javascriptの外部ファイル内でdocument.writeしたら文字化け(Mac IE 4.5編)</cite>, <time>2020-08-20T23:49:04.000Z</time>, <time>2025-11-23T05:59:03.222Z</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="https://www.shtml.jp/mojibake/macie45.html">https://www.shtml.jp/mojibake/macie45.html</anchor-external></p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="160" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[160]</anchor-end> 
<cite>JSファイル内でdocument.writeしたら文字化け(Macネスケ4.7編)</cite>, <time>2020-08-20T23:49:06.000Z</time>, <time>2025-11-23T06:00:09.388Z</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="https://www.shtml.jp/mojibake/mac_euc_js.html">https://www.shtml.jp/mojibake/mac_euc_js.html</anchor-external></p></box></ed><section><h1>異なる起源からの継承</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[132]</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>への情報漏洩ですから、注意が必要です。</p><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><ul xmlns="http://www.w3.org/1999/xhtml"><li>他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">起源</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>の情報の流出</li><li>他の<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>の指定</li></ul></ed></section></section><section><h1>文字出現頻度解析等の手法</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="105" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[105]</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:">navigate</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:">encoding sniffing algorithm</anchor>)
では、
<dfn>頻度解析等の手法</dfn> (frequency analysis or other algorithms)
を適用することが<MAY xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認められています</MAY>。
<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="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;104</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="107" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[107]</anchor-end> 
<cite>HTML Standard</cite> は、<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:">自動判定<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字コードの判定</title></anchor>しようとすることは、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般に勧められない<rt xmlns="http://www.w3.org/1999/xhtml">generally discouraged</rt></rubyb>、なぜならば本質的に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用可能</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="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;104</anchor-internal></src>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頻度解析等の手法</anchor>を<MAY xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認める</MAY>だけで<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">必須</MUST>とはしていないのは、
これが理由ということなのでしょう。確かに、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> <code>charset</code> 
や <code>&lt;meta charset&gt;</code> の処理と違って<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><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="106" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[106]</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:">HTTP</anchor> <code>charset</code> も 
<code>&lt;meta charset&gt;</code> も指定されてない <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:">Web互換性</anchor>のため事実上<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">必須</MUST>の処理です。
<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><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="108" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[108]</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>の低い状態に誘導されてしまうリスクがあり、不適切といえます。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="110" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[110]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頻度解析等の手法</anchor>について、 <cite>HTML Standard</cite> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UNIVCHARDET</anchor>
を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">non-normative reference</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="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;104</anchor-internal></src>
実装方法はこれに限定されていません。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="111" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[111]</anchor-end> <cite>IE</cite> は独自の方法を実装していました。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="112" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[112]</anchor-end> <cite>Mozilla Suite</cite> / かつての <cite>Firefox</cite> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">chardet</anchor> を使っており、
その後 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UNIVCHARDET</anchor> を使い始めました。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[113]</anchor-end> <cite>WebKit</cite> は <cite>ICU</cite> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コードの判定</anchor>を使っています。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[114]</anchor-end> <cite>Chrome</cite> は <cite>Compact Encoding Detection</cite> を使っています。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="115" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[115]</anchor-end> 現在の <cite>Firefox</cite> は <cite>chardetng</cite> を使っています。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="109" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[109]</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>を使うことができます。
<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="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;104</anchor-internal></src>
実際に <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:">URL</anchor>
やその <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLD</anchor> を判定条件の1つとして使っています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="116" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[116]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頻度解析<strong xmlns="http://www.w3.org/1999/xhtml">等</strong>の手法</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:">ASCII文字</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タグ</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>設定などを総合的に勘案できます。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字コードの判定</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 
<code>-*- coding -*-</code>
のような <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>の方法
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字コードの判定</anchor> </sw-see>
を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頻度解析等の手法</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:">テキストファイル</anchor>への <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> 
では有効な場合がありそうです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[121]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頻度解析等の手法</anchor>の対象範囲となる長さについては規定がありません。
<code>&lt;meta charset&gt;</code> は1024バイトが目安となっていますが <sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>資源ヘッダー</anchor> </sw-see>、
<code>head</code> が大きい場合など 1024 バイトでは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頻度解析等の手法</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="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[123]</anchor-end> 特に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Internet Archive</anchor> は文書の先頭付近にメニューを挿入するため、
本体部分がかなり後ろの方にずれてしまいます。</comment-p><section><h1>UTF-8 の検知</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="93" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[93]</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:">UTF-8</anchor> を判定することについては、
技術的問題から離れた主義主張があるようで、いくらか混乱した状態になっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="100" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[100]</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>等から確定的な情報を得ることが不可能ですから、
<code>file:</code> <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>の適用が必須となります。
ただ、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>は <code>file:</code> の挙動を定めておらず、各実装の処理にも差異があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[101]</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:">UTF-8</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:">ローカルファイル</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-8</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="102" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[102]</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:">文字コード</anchor>のファイルの可能性も高く、
頻度解析等の手法によって判定する必要があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Linux</anchor>、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mac OS X</anchor>、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cygwin</anchor> 等では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">POSIXロケール</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:">Windows</anchor> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ANSIコードページ</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OEMコードページ</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:">OS</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="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[103]</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> <code>ja</code>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">POSIXロケール</anchor> <code>ja_JP</code>)
が設定されている環境では、 <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:">シフトJIS</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語EUC</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:">ファイル</anchor>がある可能性が少なくないので、これらを優先的に判定するのが望ましいと考えられます。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="155" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[155]</anchor-end> 
なお、これに関する被害報告は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザーによる文字コード判定の失敗事例集</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="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite xml:lang="en">815551 – Autodetect UTF-8 by default</cite>
( (<time>2014-05-05 08:06:31 +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="https://bugzilla.mozilla.org/show_bug.cgi?id=815551">https://bugzilla.mozilla.org/show_bug.cgi?id=815551</anchor-external></li><li>
<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> <cite xml:lang="en">Bug 25534 – HTML spec should not encourage to auto-detect UTF-8</cite>
( (<time>2014-05-05 08:06:57 +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="https://www.w3.org/Bugs/Public/show_bug.cgi?id=25534">https://www.w3.org/Bugs/Public/show_bug.cgi?id=25534</anchor-external></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> 
<cite xml:lang="en">1071816 - Support loading BOMless UTF-8 text/plain files from file: URLs</cite>, <time>2025-11-08T11:42:26.000Z</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="https://bugzilla.mozilla.org/show_bug.cgi?id=1071816">https://bugzilla.mozilla.org/show_bug.cgi?id=1071816</anchor-external></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> 
<cite xml:lang="en">760050 - Character encoding auto-detect fails on UTF-8 text file (regarded as TIS-620)</cite>, <time>2025-11-08T11:44:44.000Z</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="https://bugzilla.mozilla.org/show_bug.cgi?id=760050">https://bugzilla.mozilla.org/show_bug.cgi?id=760050</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="146" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[146]</anchor-end> 
<cite><strong>[</strong>whatwg<strong>]</strong> Guessing the fallback encoding from the top-level domain name before trying to guess from the browser localization</cite>, <time>2025-09-26T07:05:54.000Z</time>, <time>2025-11-09T09:18:54.675Z</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="https://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-December/041819.html">https://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-December/041819.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="145" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[145]</anchor-end> 
<cite xml:lang="en">GitHub - hsivonen/chardetng: A character encoding detector for legacy Web content.</cite>, <time>2025-11-09T09:18:18.000Z</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="https://github.com/hsivonen/chardetng?tab=readme-ov-file#notes-about-encodings">https://github.com/hsivonen/chardetng?tab=readme-ov-file#notes-about-encodings</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="151" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[151]</anchor-end> 
<cite xml:lang="en">charset / encoding detection can't decode UTF-8 without BOM correctly <strong>[</strong>40512321<strong>]</strong> - Chromium</cite>, <time>2025-11-23T03:21:23.000Z</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="https://issues.chromium.org/issues/40512321">https://issues.chromium.org/issues/40512321</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="152" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[152]</anchor-end> 
<cite xml:lang="en">Use UTF-8 as default for plaintext content <strong>[</strong>41352127<strong>]</strong> - Chromium</cite>, <time>2025-11-23T03:25:41.000Z</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="https://issues.chromium.org/issues/41352127">https://issues.chromium.org/issues/41352127</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="154" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[154]</anchor-end> <cite xml:lang="en">1497037 - Default Firefox encoding should be Unicode (UTF-8) and not Western</cite>, <time>2025-11-23T03:49:27.000Z</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="https://bugzilla.mozilla.org/show_bug.cgi?id=1497037">https://bugzilla.mozilla.org/show_bug.cgi?id=1497037</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="158" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[158]</anchor-end> 
<cite>Googleの検索結果のサマリーが文字化け</cite>, <time>2020-08-20T23:48:51.000Z</time>, <time>2025-11-23T05:52:33.311Z</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="https://www.shtml.jp/mojibake/google.html">https://www.shtml.jp/mojibake/google.html</anchor-external></p></section><section><h1>フォント依存符号化の検知</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="117" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[117]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">8ビット符号</anchor>系の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント依存符号化</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:">Windows-1252</anchor> として処理されることを前提とした<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>を使っています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>フォント依存符号化</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="118" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[118]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">encoding sniffing algorithm</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:">文字コード</anchor>ではなく
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1252</anchor> と判定する必要があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="119" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[119]</anchor-end> 
<code>&lt;meta charset&gt;</code> として <code>ISO-8859-1</code>, <code>Windows-1252</code>,
<code>x-user-defined</code> が指定される場合には、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1252</anchor> として処理されるので、
特に問題となりません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="120" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[120]</anchor-end> 
<code>&lt;meta charset&gt;</code> にその他の値 (当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント依存符号化</anchor>を表す
<cite>Encoding Standard</cite> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化ラベル</anchor>ではない値など)
が指定された場合や、 <code>&lt;meta charset&gt;</code> 等が存在しない場合には、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頻度解析等の手法</anchor>の対象となりますが、ここで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1252</anchor>
<em>以外</em>と判定してしまうと、<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="125" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[125]</anchor-end> 
すべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント依存符号化</anchor>をバイト出現頻度によって検知することは困難なので、
現実的な手法としては、 <code>&lt;meta charset&gt;</code> の prescan と同様の方法によって
<code>&lt;font face&gt;</code> を検出し、<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:">UTF-8</anchor> の検知はそれよりも優先させるべきです。</p></section><section><h1>ASCII の検知</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="133" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[133]</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:">ASCII文字</anchor>のみを検知したときの扱いは注意が必要です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="134" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[134]</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-1252</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:">環境符号化</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書の文字符号化</anchor>という形で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非ASCII文字</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="135" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[135]</anchor-end> 実際に <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;66</anchor-internal> のような事例があります。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="136" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[136]</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:">HTML文書</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:">Windows-1252</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:">ASCII文字</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="137" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[137]</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:">encoding sniffing algorithm</anchor> の実装時には判定器の選択や設定に注意が必要となります。</p></section></section><section><h1>x-user-defined の読み替え</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>x-user-defined</anchor> </sw-see></p></section><section><h1>ロケール依存の既定値</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="142" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[142]</anchor-end> 
他の方法で決められないときの既定値は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ロケール</anchor>依存とされています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字コードの決定</anchor> </sw-see></p></section></section><section><h1>事例</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>Webブラウザーによる文字コード判定の失敗事例集</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</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>を含める技法を使うことがあります。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字コードの判定</anchor> </sw-see></p></section><section><h1>セキュリティー</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>sniffing</anchor> </sw-see></p><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字のセキュリティー</anchor> </sw-see></p><section><h1>Web ブラウザー個別の詳細</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>BBB</anchor> </sw-see></p></section></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <cite xml:lang="en">Editorial: further cleanup &quot;abort these steps&quot;</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">shreyateeza</anchor>著, <time>2018-01-09 20:22:36 +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="https://github.com/whatwg/html/commit/99e2cdfc484c2ff14cbf5c38b859f4d6da17e64c">https://github.com/whatwg/html/commit/99e2cdfc484c2ff14cbf5c38b859f4d6da17e64c</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> 
<cite xml:lang="en">1280556 – Encoding detection mismatch on http://www.idpf.org/epub/pgt/</cite>
(<time>2016-06-25 20:58:34 +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="https://bugzilla.mozilla.org/show_bug.cgi?id=1280556">https://bugzilla.mozilla.org/show_bug.cgi?id=1280556</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[122]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20150803</cite>
(<time>2015-08-04 13:28:24 +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://krijnhoetmer.nl/irc-logs/whatwg/20150803">http://krijnhoetmer.nl/irc-logs/whatwg/20150803</anchor-external></figcaption><blockquote><p># <strong>[</strong>17:23<strong>]</strong> &lt;hsivonen&gt; SimonSapin: I can't recall why I implemented the late &lt;meta&gt; thing in the new parser</p><p># <strong>[</strong>17:23<strong>]</strong> &lt;hsivonen&gt; SimonSapin: initially, I make the detectors see at most 1024 bytes so that they couldn't trigger a reload</p><p># <strong>[</strong>17:23<strong>]</strong> &lt;hsivonen&gt; SimonSapin: but that broke Japanese Planet Debian</p><p># <strong>[</strong>17:24<strong>]</strong> &lt;hsivonen&gt; SimonSapin: and people get really nervous if you break a Japanese site</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[124]</anchor-end> <cite xml:lang="en">Let the Encoding standard deal with the BOM · whatwg/html@83ebb72</cite>
(<time>2016-02-10 22:46:18 +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="https://github.com/whatwg/html/commit/83ebb728198801e2f1a32b80ec7d7a2e7dccc593">https://github.com/whatwg/html/commit/83ebb728198801e2f1a32b80ec7d7a2e7dccc593</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="129" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[129]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal> の変更により、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の指示や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> の指示などによる上書きよりも
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> が最優先されるようになりました。また、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> があると <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">confidence</f>
が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">certain</anchor> に設定されていたのがなくなったので、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor>
があっても他の指定が優先されたり、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化の変更</anchor>が実行されたりするようになりました
(もっとも結局 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> が最優先されるので、最終的な結果は変わりません)。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="129" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;129</anchor-internal> この不具合はその後修正されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="167" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[167]</anchor-end> 
<cite xml:lang="en">White spots in HTML5's encoding sniffing algorithm | Målform</cite>, <time>2025-12-01T08:13:43.000Z</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="https://malform.no/blog/white-spots-in-html5-s-encoding-sniffing-algorithm">https://malform.no/blog/white-spots-in-html5-s-encoding-sniffing-algorithm</anchor-external></p></section></section><section><h1>文字列からバイト列への変換</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>は、次の場面で用いられます。</p><figure class="list middle"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>が呼び出される場面</figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8符号化</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL構文解析器</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">query<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">URL query</title></anchor></li><li><code class="MIME" xml:lang="en">application/x-www-form-urlencoded</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor></li><li><code>multipart/form-data</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> 
<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:">符号化</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:">文字コード</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</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:">バイト列</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:">ASCII文字</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="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> 
それ以外で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</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="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> 
なお <code xmlns="http://www.w3.org/1999/xhtml">TextEncoder</code> は <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="168" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[168]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webにおける文字コード</anchor>の利用に着目すると4期に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">時代区分</anchor>できます。</p><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="169" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[169]</anchor-end> 第I期 : 各地の在来<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>体系が混沌と利用された時代</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="170" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[170]</anchor-end> 第II期 : 各地の在来<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の主要なものへと収束しつつ
<code>charset</code> の明示が基本となった時代</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="171" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[171]</anchor-end> 第III期 : <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> への切り替わりが進んだ時代</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="172" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[172]</anchor-end> 第IV期 : <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> が基本となった時代</li></ol><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="173" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[173]</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:">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>と、
それがなく地元民の自助的取り組みに依存していた<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="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[174]</anchor-end> 
全世界的に見れば、ちょうど<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平成時代</anchor>までが第III期に属し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">令和時代</anchor>が第IV期といえます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="175" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[175]</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:">Webブラウザー</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:">Web開発</anchor>の現場での取り扱いの方法が変化しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="176" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[176]</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:">Webアプリケーション</anchor>の流行に伴う変化もあれば、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OS</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></section><section><h1>なかったことにされている Web 草創期の文字コード</h1><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>規格も過去には各種いろいろ使われていました。</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> 
今でも、古くから残っている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ウェブサイト</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Internet Archive</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>にしか見えません。</p><figure class="short list"><figcaption><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> <cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encoding Standard</anchor></cite> にない<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></figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MacJapanese</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフトJIS (iモード)</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフトJIS (au)</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフトJIS (SoftBank)</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Shift_JISX0213</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Haddis</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CP852</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO646-YU</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CROASCII</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PASCII</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JISエチオピア文字</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SERA</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HZ</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VIQR</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VSCII</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VISCII</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-2022-CN</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-2022-KR</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">7ビットISO 2022</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Big5-UAO</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TAB</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TAM</anchor></li><li><code>GEO8-GOV</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 1.1</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Zawgyi</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-7</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EBCDIC</anchor> 各種</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント依存符号化</anchor>各種</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EUDC</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PUA</anchor> 各種</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト形式TRONコード</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフトJIS文字参照</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コードの混在</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="97" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[97]</anchor-end> 
20世紀末から21世紀初頭に作られた膨大な人類の遺産が切り捨てられている現状は実に嘆かわしいものです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="98" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[98]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Internet Archive</anchor> にしか残っていないようなものはさすがに仕方がないとしても、
まだ現役の普通のウェブサイトにあるページすら読めないものが出てきているのは、
本当に困ったものです。</p><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>読めなくなったファイル</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="178" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[178]</anchor-end> 
現在の <cite>HTML Standard</cite> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>に対し、
<cite>Encoding Standard</cite>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>に対応し<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なければならない</MUST>こと、
それ以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>に対応しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ならない</MUST>ことを定めています。
<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="177" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;177</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="179" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[179]</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:">HTML文書</anchor>で読めないものがでてきます。
つまりこの規定は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web互換</anchor>ではありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="180" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[180]</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>に対応しているものがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="181" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[181]</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:">文字符号化</anchor>に対応しているものがあります。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="185" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[185]</anchor-end> 
<cite>Encoding Standard</cite> は個々の事情を無視して強引に開発された雑な面があり、
態度が一貫していない箇所も散見されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="186" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[186]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GBK</anchor> はなぜか <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gb18030</anchor> と別で特別扱いされています。
互換性のためと説明されていますが、他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>にも同様の事情があっても無理に統合しているものがいくつもあるわけで、
筋は通っていません。</p></section><section><h1>歴史</h1><section><h1>Web の日本語化</h1><ul><li><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> <cite>WWW Browsers that can display Japanese</cite>, <time>2024-08-30T09:26:30.000Z</time>, <time>1998-02-08T02:07:51.085Z</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="https://web.archive.org/web/19980208020014/http://www.ntt.co.jp/japan/note-on-JP/browsers.html">https://web.archive.org/web/19980208020014/http://www.ntt.co.jp/japan/note-on-JP/browsers.html</anchor-external><ul><li><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> <cite>Japanese Encoding Methods</cite>, <time>2024-08-30T09:26:52.000Z</time>, <time>1998-02-08T02:08:21.329Z</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="https://web.archive.org/web/19980208020006/http://www.ntt.co.jp/japan/note-on-JP/encoding.html">https://web.archive.org/web/19980208020006/http://www.ntt.co.jp/japan/note-on-JP/encoding.html</anchor-external></li></ul></li><li><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> <cite>netscape-j.info.eng file</cite>, <time>2024-08-30T09:27:03.000Z</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="https://web.archive.org/web/19961128190942/http://condor.stcloud.msus.edu:20020/netscape.html">https://web.archive.org/web/19961128190942/http://condor.stcloud.msus.edu:20020/netscape.html</anchor-external></li><li><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:">ISO-2022-JP</anchor> にも関連事項</li></ul><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:">Dan Connolly</anchor> の過去ファイルアーカイブ (<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>HTMLの仕様書</anchor> </sw-see>)
にある 
<code>MarkUp.html,v</code>
によるとかつて <code>info.cern.ch</code> にあった <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTMLの仕様書</anchor>には<time>1994-04-12</time>時点で</p><blockquote><pre>&lt;H2&gt;For developers&lt;/H2&gt;
&lt;DL&gt;
<snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip>
&lt;DT&gt;&lt;A
NAME=&quot;z40&quot; HREF=&quot;http://www.ntt.jp/japan/note-on-JP/encoding.html&quot;&gt;Japanese encoding&lt;/A&gt;
&lt;DD&gt; How Japanese characters
have been encoded within HTML</pre></blockquote><p>と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NTT</anchor> ウェブサイトへの参照があったようです。</p><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> このリンクがいつまで残っていたのかわかりません。</p><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:">JPドメイン</anchor>の再編で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> が変わってからもしばらくは参照先の頁は残っていたようで、
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;18</anchor-internal> に<time>平成9(1997)年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">1997</attrvalue></time>時点の参照が、
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;14</anchor-internal> に<time>平成10(1998)年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">1998</attrvalue></time>時点の複製があります。</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="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <cite>TLUG Mailing List</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Jim Schweizer - webmaster TLUG</anchor>, <time>2007-05-20T03:27:20.000Z</time>, <time>2024-08-30T09:29:37.681Z</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="https://lists.tlug.jp/ML/9711/msg00112.html">https://lists.tlug.jp/ML/9711/msg00112.html</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="156" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[156]</anchor-end> 
<cite>Yahoo! JAPAN - 文字化け対策</cite>, <time>2025-11-23T05:40:32.000Z</time>, <time>2003-02-12T18:00:31.619Z</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="https://web.archive.org/web/20030212174858/http://docs.yahoo.co.jp/docs/help/mojibake/index.html">https://web.archive.org/web/20030212174858/http://docs.yahoo.co.jp/docs/help/mojibake/index.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="157" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[157]</anchor-end> 
<cite>Yahoo! JAPAN - Netscape 3.xをお使いの方へ</cite>, <time>2025-11-23T05:42:13.000Z</time>, <time>2003-02-12T20:18:13.903Z</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="https://web.archive.org/web/20030212201640/http://docs.yahoo.co.jp/docs/help/mojibake/space.html">https://web.archive.org/web/20030212201640/http://docs.yahoo.co.jp/docs/help/mojibake/space.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="164" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[164]</anchor-end> 
<cite>Yahoo!</cite>, <time>2025-11-26T05:54:24.000Z</time>, <time>1999-01-17T06:24:22.615Z</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="https://web.archive.org/web/19990117062145/http://www.yahoo.com/docs/info/bridge.html">https://web.archive.org/web/19990117062145/http://www.yahoo.com/docs/info/bridge.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="165" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[165]</anchor-end> 
<cite>Yahoo!</cite>, <time>2025-11-26T05:55:39.000Z</time>, <time>1999-01-17T03:02:28.012Z</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="https://web.archive.org/web/19990117025838/http://www.yahoo.com/docs/info/kbridge.html">https://web.archive.org/web/19990117025838/http://www.yahoo.com/docs/info/kbridge.html</anchor-external></p></section><section><h1>Web の多言語化、初期の試み</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> 
<cite>Sample Pages for Various Character Sets</cite>, <time>2025-06-17T02:23:42.000Z</time>, <time>2006-05-12T03:58:22.300Z</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="https://web.archive.org/web/20060512035632/http://vancouver-webpages.com/multilingual/">https://web.archive.org/web/20060512035632/http://vancouver-webpages.com/multilingual/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <cite>Une indigestion de jeux de caractères</cite>, <time>2025-06-20T11:52:03.000Z</time>, <time>1997-05-02T05:03:35.837Z</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="https://web.archive.org/web/19970502020520/http://www.ics.uci.edu/pub/ietf/html/multilingual.html">https://web.archive.org/web/19970502020520/http://www.ics.uci.edu/pub/ietf/html/multilingual.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> 
<cite xml:lang="ja">IE3.01 MojiBake</cite>, <time>2025-11-02T12:39:40.000Z</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="https://groups.google.com/g/fj.net.infosystems.www.browsers/c/wnawyNwhm_I/m/CD7Ej3R0UOMJ">https://groups.google.com/g/fj.net.infosystems.www.browsers/c/wnawyNwhm_I/m/CD7Ej3R0UOMJ</anchor-external></p><blockquote><pre>おかしな実装の例としては、(私の場合、全て MS-Windows95 での話ですが、)
Netscape Navigator の Version 2 が、そうなっていました。
x-sjis は解釈できるが、Shift_JIS では文字化けしました。
Version 3/4 では、Shift_JIS を正しく解釈します。


但し、Version 4.0 Preview Release 2 には、Navigator の Encoding と、
META タグで指定された charset とが一致していない場合に、
&lt;H3&gt;Transfer Interruped !&lt;/H3&gt;
(もう記憶があいまいですが、確かこうだった)
というものを、その時受けていたページの中に埋め込んでしまいます。
埋め込んだまま、cache に記録してしまうので、reload しても消えません。

私のページの場合、それがちょうど、表 &lt;TABLE&gt; - &lt;/TABLE&gt; の中に入ってしまって、
表の表示がメチャクチャになってしまいました。

Version 4.0 Preview Release 3 では、そういうバグはありません。


それから、MS-IE 3.0/3.01 では、
META タグで charset を指定すると、かえって文字化けしやすくなる様です。
MS-IE 3.02/4.0では試していません。


さらに、Win32 版 Lynx の先月のバージョンでは、
META タグで charset を指定すると、必ず文字化けします。
もっともこれは、私が Lynx の設定をちゃんとしていないからかもしれません。</pre></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> 
<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="https://groups.google.com/g/fj.net.infosystems.www.browsers/c/wnawyNwhm_I/m/HURaRZwFLwYJ">https://groups.google.com/g/fj.net.infosystems.www.browsers/c/wnawyNwhm_I/m/HURaRZwFLwYJ</anchor-external></p><blockquote><pre>Win32 Lynx の名誉のために自分でフォローしときます。

META指定無し


&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=Shift_JIS&quot;&gt;

&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=iso-2022-jp&quot;&gt;
では、文字化けしません。

&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=x-sjis&quot;&gt;
だと、文字化けします。

なお、LYNX.EXE の作成日時は、97/03/14 18.19 です。</pre></blockquote><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="161" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[161]</anchor-end> <cite>Netscape Lietuvinimas</cite>, <time>2025-11-24T04:37:29.000Z</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="https://hebris.tripod.com/disc2_toc.htm">https://hebris.tripod.com/disc2_toc.htm</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="163" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[163]</anchor-end> <cite>Netscape Lietuvinimas</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Artūras Miežlaiškis</anchor>, <time>2025-11-24T04:38:57.000Z</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="https://hebris.tripod.com/bookmark/netscape/skaitom.html">https://hebris.tripod.com/bookmark/netscape/skaitom.html</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="162" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[162]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="161" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;161</anchor-internal> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="163" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;163</anchor-internal> は当時の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リトアニア語</anchor>処理の混沌とした状況</p></section><section><h1></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> 
<cite>Charsets in Microsoft Internet Explorer 4</cite>, <time>2007-11-14T17:53:13.000Z</time>, <time>2025-05-19T13:18:22.236Z</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="https://www.w3.org/International/ms-charset.html">https://www.w3.org/International/ms-charset.html</anchor-external></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> <cite>Re: proposed registration of type 'text/html' for MIME</cite>, <time>2003-08-04T15:50:20.000Z</time>, <time>2024-09-29T07:28:49.747Z</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="https://lists.w3.org/Archives/Public/www-talk/1992NovDec/0035.html">https://lists.w3.org/Archives/Public/www-talk/1992NovDec/0035.html</anchor-external></p><p><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-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal> この時点で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TimBL</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> は7ビットデータにしたがっていた。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <cite xml:lang="ja">Hebrew in xgopher and xmosaic</cite>, <time>2024-10-07T08:58:55.000Z</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="https://groups.google.com/g/comp.windows.x.apps/c/rxYwpVeG5Mk/m/r-C__uoThWYJ">https://groups.google.com/g/comp.windows.x.apps/c/rxYwpVeG5Mk/m/r-C__uoThWYJ</anchor-external></li></ul><ul><li><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> <cite>Greek Mosaic</cite>, <time>2024-10-07T08:15:46.000Z</time>, <time>1997-06-07T11:12:48.666Z</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="https://web.archive.org/web/19970607111220/http://expert.cc.purdue.edu/~hsa/Mosaic.html">https://web.archive.org/web/19970607111220/http://expert.cc.purdue.edu/~hsa/Mosaic.html</anchor-external></li><li><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> <cite>Greek Netscape</cite>, <time>2024-10-07T08:16:12.000Z</time>, <time>1997-06-07T11:13:35.680Z</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="https://web.archive.org/web/19970607111227/http://expert.cc.purdue.edu/~hsa/Netscape.html">https://web.archive.org/web/19970607111227/http://expert.cc.purdue.edu/~hsa/Netscape.html</anchor-external></li></ul><p><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-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;24</anchor-internal> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;25</anchor-internal> リンク先は残念ながら未所蔵。</p><p><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> <cite xml:lang="ja">Internationalized HTTP?</cite>, <time>2024-10-07T08:29:30.000Z</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="https://groups.google.com/g/comp.infosystems.www/c/htw5XLv4Hj0/m/wPr5IAol_EIJ">https://groups.google.com/g/comp.infosystems.www/c/htw5XLv4Hj0/m/wPr5IAol_EIJ</anchor-external></p><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> 
<cite xml:lang="ja">What is standard for cyrllic HTML ? Hebrew ? Arabic ?</cite>, <time>2024-10-07T07:59:17.000Z</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="https://groups.google.com/g/comp.infosystems.www.providers/c/lBJKtyujAk4/m/yRxsWMDGpZUJ">https://groups.google.com/g/comp.infosystems.www.providers/c/lBJKtyujAk4/m/yRxsWMDGpZUJ</anchor-external></p><p><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> <cite xml:lang="ja">WWW and cyrillic</cite>, <time>2024-10-07T08:26:42.000Z</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="https://groups.google.com/g/relcom.tcpip/c/dUBIIAE-MnM/m/i_YJic8dqjUJ">https://groups.google.com/g/relcom.tcpip/c/dUBIIAE-MnM/m/i_YJic8dqjUJ</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> 
<cite xml:lang="en">Official Google Blog: Unicode nearing 50% of the web</cite>, <time>2025-10-14T07:48:09.000Z</time>, <time>2025-10-19T12:59:41.663Z</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="https://googleblog.blogspot.com/2010/01/unicode-nearing-50-of-web.html">https://googleblog.blogspot.com/2010/01/unicode-nearing-50-of-web.html</anchor-external></p><ul><li><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> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4329</anchor>: Scripting Media Types</cite>, <time>2022-11-22T07:32:55.000Z</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="https://www.rfc-editor.org/rfc/rfc4329.html#section-4">https://www.rfc-editor.org/rfc/rfc4329.html#section-4</anchor-external></li><li><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> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 9239</anchor>: Updates to ECMAScript Media Types</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Matthew A. Miller</anchor>, <time>2022-11-22T08:24:07.000Z</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="https://www.rfc-editor.org/rfc/rfc9239#section-4">https://www.rfc-editor.org/rfc/rfc9239#section-4</anchor-external></li></ul><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-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript MIME型</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="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> 
詳しい条件は不明ながら、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> はメモリー不足だと文書中から読み込むファイル (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor> 
など) の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>判定に失敗して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1252</anchor> として読み込んじゃう(ことがある)っぽいなあ。
<time>2024-11-08T02:11:07.500Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <cite xml:lang="en">compact_enc_det/util/encodings/encodings.cc at master · google/compact_enc_det · GitHub</cite>, <time>2025-05-19T14:51:44.000Z</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="https://github.com/google/compact_enc_det/blob/master/util/encodings/encodings.cc">https://github.com/google/compact_enc_det/blob/master/util/encodings/encodings.cc</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <cite xml:lang="en">Usage Statistics and Market Share of Character Encodings for Websites, June 2025</cite>, <time>2025-06-15T00:41:19.000Z</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="https://w3techs.com/technologies/overview/character_encoding">https://w3techs.com/technologies/overview/character_encoding</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;33</anchor-internal> 現在表示されているデータでは </p><blockquote><p>UTF-8 is used by 98.7% of all the websites whose character encoding we know.</p></blockquote><p>となっている。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;34</anchor-internal> の通り <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> が今や圧倒的に多いのだろうが、古くから残る頁はこうした統計の対象になりにくいことが多いので漏れてしまう。
また、少ないデータは精度が落ちる。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EUC-JP</anchor> が 0.1%、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Shift JIS</anchor> が 0.1% 未満となっていて <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:">Shift JIS</anchor> の頁を見ると、
<time>2024-09-01</time>まで 0.25% と 0.3% の間だったのが<time>2024-12-01</time>には0.05%と急激に落ちているが、その前後はほとんど横ばい。
こういう結果が出ているということは、どこか特定のサイトが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> に一括変更したか、
調査対象から外れたことが疑われる。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;36</anchor-internal> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WIndows-31J</anchor> も同じ時期に 0.0008% から 0.0002% に減少しているのはなんか怪しい。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> 
また、割合が少ない文字コードを使っているドメインを見ると<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="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;34</anchor-internal> では <code>ansi_x3.110-1983</code> なるものまで上位として挙げられている。
これは誤りと考えられるもの (<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>ansi_x3.110-1983</anchor> </sw-see>)。
いくら広く普及している誤りといっても、さすがにそんなものが他の諸言語の旧来<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="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <cite>Character Set Test Area</cite>, <time>2025-10-28T14:26:51.000Z</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="https://charsetplus.tripod.com/HTMLs/index.html">https://charsetplus.tripod.com/HTMLs/index.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</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:">越南語</anchor>かもしれません。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">20世紀</anchor>に広く用いられていた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">越南語の文字コード</anchor>を <cite>Encoding Standard</cite>
はどれ1つとして収録していません。今の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">20世紀</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ベトナム</anchor>の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>がまったく読めません。</p><p>そのかわりに <cite>Encoding Standard</cite> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1258</anchor>
を規定しています。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1258</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Microsoft</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:">Web</anchor> 上に (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Internet Archive</anchor> を探しても)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1258</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>は皆無です。
なぜ <cite>Encoding Standard</cite> にあるかといえば、他の欧米等の
Windows-125<var>x</var>
シリーズとまとめて全 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>が実装していたからです。
誰も現地の実態を調べていません。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <cite xml:lang="en">chardetng: A More Compact Character Encoding Detector for the Legacy Web</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Henri Sivonen</anchor>, <time>2020-06-08T16:23:51.000Z</time>, <time>2025-10-29T10:46:36.590Z</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="https://hsivonen.fi/chardetng/#legacy">https://hsivonen.fi/chardetng/#legacy</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;51</anchor-internal> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コードの判定</anchor>の実装の作り直しが<time>西暦2020年(令和2年)<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2020</attrvalue></time>に行われたときのものですが、
<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:">Windows-1258</anchor> だと<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">分解</anchor>が必要なので工夫してデータを作った!と報告してます。</p><p>でも今も当時も
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1258</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><p>そして当時の実際の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>はというと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VN3</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VISCII</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VPS</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:">VNI</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:">ANSI</anchor> 版)
は2文字の組合せで表すことは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1258</anchor>
と似ていますが、組合せ方はまったく違います。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows-1258</anchor> 専用のデータはこのどちらにも流用できません。</p><p>そんな基礎的事実を確認しないまま実装を進めているというのが現実なわけです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <cite>Description of settings in lynx configuration file</cite>, <time>2023-10-24T19:26:50.000Z</time>, <time>2025-11-02T05:10:10.462Z</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="https://lynx.invisible-island.net/lynx_help/body.html#CHARACTER_SET">https://lynx.invisible-island.net/lynx_help/body.html#CHARACTER_SET</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="150" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[150]</anchor-end> <cite><strong>[</strong>whatwg<strong>]</strong> Superset encodings [Re: ISO-8859-* and the C1 control range</cite>], <time>2025-09-26T07:05:51.000Z</time>, <time>2025-11-16T06:07:28.637Z</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="https://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-April/019322.html">https://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-April/019322.html</anchor-external></p></section></section></body></html>