<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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <dfn>幽霊文字コード名</dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>の名称として説明されることがあるものの、
実際には利用も実装も確認できないものです。</p><section><h1><sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</sw-ch>付き</h1><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> 
<dfn><code>HZ-GB-23121</code></dfn>,
<dfn><code>X-ISO-10646-UCS-4-21431</code></dfn>,
<dfn><code>X-ISO-10646-UCS-4-34121</code></dfn>
は、
<code>HZ-GB-2312</code>,
<code>X-ISO-10646-UCS-4-2143</code>,
<code>X-ISO-10646-UCS-4-3412</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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 
発生源となった (がそれ自体には<strong>罪はない</strong>) のは、
<cite>juniversalchardet</cite>
というソフトウェアのドキュメントです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 
元々次のように書かれていました。 <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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><blockquote><ul><li>Chinese<ul><li><snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip></li><li>HZ-GB-2312<sup>1</sup></li></ul></li><li><snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip></li><li>Unicode<ul><li><snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip></li><li>UTF-32BE / UTF-32LE / X-ISO-10646-UCS-4-3412<sup>1</sup> / X-ISO-10646-UCS-4-2143<sup>1</sup></li></ul></li><li><snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip></li></ul><p><b>1</b> Currently not supported by Java</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
すなわちこれら3つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>の名前の直後に脚注を表す「<sup>1</sup>」がありました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の <code>sup</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>で記述されていました。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 
<cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google Code</anchor> Archive - Long-term storage for Google Code Project Hosting.</cite>, <time>2025-05-18T03:54:50.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://code.google.com/archive/p/juniversalchardet/">https://code.google.com/archive/p/juniversalchardet/</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 
<cite>juniversalchardet</cite>
は直接または間接に多くのソフトウェアの派生源となりました。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>juniversalchardet</anchor> </sw-see>
派生時に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ドキュメント</anchor>も転用されました。
<strong>多くの派生物は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の名称を適切に書いています</strong>が、
一部は誤った形で処理してしまいました。</p><figure class="quote"><figcaption><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> 
<cite>Release notes for Gerrit 2.1.2</cite>, <time>2015-12-22T02:18:05.000Z</time>, <time>2025-05-18T04:01:15.750Z</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://gerrit-documentation.storage.googleapis.com/ReleaseNotes/ReleaseNotes-2.1.2.html">https://gerrit-documentation.storage.googleapis.com/ReleaseNotes/ReleaseNotes-2.1.2.html</anchor-external></figcaption><blockquote><ul><li>
Improved character set detection
<sw-br xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></sw-br>
Gerrit now uses the Mozilla character set detection algorithm when trying to determine what charset was used to write a text file. For UTF-8 or ISO-8859-1/ASCII users, there should be no difference over prior releases. With this change, the server can now also automatically recognize source files encoded in:<ul><li>a. Chinese (ISO-2022-CN, BIG5, EUC-TW, GB18030, HZ-GB-23121)</li><li><snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip></li><li>g.Unicode (UTF-8, UTF-16BE / UTF-16LE, UTF-32BE / UTF-32LE / X-ISO-10646-UCS-4-34121 / X-ISO-10646-UCS-4-21431)</li><li><snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip></li></ul></li></ul></blockquote></figure><figure class="quote"><figcaption><cite xml:lang="ja">uchardet / uchardet · GitLab</cite>, <time>2025-05-18T04:25:04.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://gitlab.freedesktop.org/uchardet/uchardet">https://gitlab.freedesktop.org/uchardet/uchardet</anchor-external></figcaption><blockquote><p>UTF-32BE / UTF-32LE / X-ISO-10646-UCS-4-34121 / X-ISO-10646-UCS-4-21431</p></blockquote><blockquote><p>HZ-GB-2312</p></blockquote></figure><figure class="quote"><figcaption><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">GitHub - PyYoshi/uchardet: uchardet is an encoding detector library, which takes a sequence of bytes in an unknown character encoding and attempts to determine the encoding of the text. Returned encoding names are iconv-compatible.</cite>, <time>2025-05-18T04:03:37.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/PyYoshi/uchardet">https://github.com/PyYoshi/uchardet</anchor-external></figcaption><blockquote><p>UTF-32BE / UTF-32LE / X-ISO-10646-UCS-4-34121 / X-ISO-10646-UCS-4-21431</p></blockquote><blockquote><p>HZ-GB-2312</p></blockquote></figure><figure class="quote"><figcaption><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> 
<cite xml:lang="en">GitHub - PyYoshi/cChardet: universal character encoding detector</cite>, <time>2025-05-18T04:04: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://github.com/PyYoshi/cChardet">https://github.com/PyYoshi/cChardet</anchor-external></figcaption><blockquote><p>UTF-32BE / UTF-32LE / X-ISO-10646-UCS-4-34121 / X-ISO-10646-UCS-4-21431</p></blockquote><blockquote><p>HZ-GB-2312</p></blockquote></figure><figure class="quote"><figcaption><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">GitHub - CharsetDetector/UTF-unknown: Character set detector build in C# - .NET 5+, .NET Core 2+, .NET standard 1+ &amp; .NET 4+</cite>, <time>2025-05-18T04:05: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://github.com/CharsetDetector/UTF-unknown">https://github.com/CharsetDetector/UTF-unknown</anchor-external></figcaption><blockquote><p><b>Encodings with BOM</b>: <code>utf-7</code>, <code>utf-8</code>, <code>utf-16be</code>/<code>utf-16le</code>, <code>utf-32be</code>/<code>utf-32le</code>, <code>X-ISO-10646-UCS-4-34121</code>/<code>X-ISO-10646-UCS-4-21431</code>, <code>gb18030</code>.</p></blockquote><blockquote><table><tbody><tr><td>Chinese</td><td><code>iso-2022-cn</code>, <code>big5</code>, <code>euc-tw</code>, <code>gb18030</code>, <code>hz-gb-2312</code></td></tr></tbody></table></blockquote><blockquote><p><b>Remarks</b>: For some aliases of encoding not available: <code>cp949</code>, <code>iso-2022-cn</code>, <code>euc-tw</code>, <code>iso-8859-10</code>, <code>iso-8859-16</code>, <code>viscii</code>, <code>X-ISO-10646-UCS-4-34121</code>/<code>X-ISO-10646-UCS-4-21431</code>. <snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip></p></blockquote></figure><figure class="quote"><figcaption><ul><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="ja">Microsoft PowerPoint - MLTP_2010_9_6 - MLTP_Manual.pdf</cite>, <time>2018-10-30T03:13:27.000Z</time>, <time>2025-05-18T04:13:39.428Z</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.tufs.ac.jp/ts/personal/corpuskun/pdf/2018/MLTP_Manual.pdf">https://www.tufs.ac.jp/ts/personal/corpuskun/pdf/2018/MLTP_Manual.pdf</anchor-external></li><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 xml:lang="ja">Microsoft PowerPoint - MLTP_2010_9_6 - MLTP.pdf</cite>, <time>2010-11-05T12:43:40.000Z</time>, <time>2025-05-18T04:14:14.427Z</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://textdata.web.fc2.com/MLTP.pdf">http://textdata.web.fc2.com/MLTP.pdf</anchor-external></li></ul></figcaption><blockquote><p>HZ‐GB‐23121</p></blockquote><blockquote><p>UTF‐8, UTF‐16BE/16LE, UTF‐32BE/32LE/<sw-br xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></sw-br>
X‐ISO‐10646‐UCS‐4‐34121/4‐21431</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> 
これら現在までに確認されている用例は、いずれも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ドキュメント</anchor>にのみ出現するのであって、
実際のコードでは正しい名称が使われています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> 
つまり開発者が内容をよく理解することなく雑に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コピペ</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></section><section><h1>幽霊文字コード</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <dfn>幽霊文字コード</dfn>かもしれない: 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HKU</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode Consortium</anchor> 版 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Big5</anchor></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> 
<code>X-ISO-10646-UCS-4-2143</code>, 
<code>X-ISO-10646-UCS-4-3412</code>
ももしかすると<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>に関する <cite>XML</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>で <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:">エンディアン</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCS-4</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="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> もしそうだとするならこれも1つの「幽霊が幽霊を呼ぶ」の事案ですな。</comment-p></section><section><h1>関連</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>幽霊文字</anchor> </sw-see></p></section><section><h1>メモ</h1></section></body></html>