<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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</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><h1>識別子の体系</h1><p><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> 
各種の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書形式</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コードの変換</anchor>の実装などでそれぞれ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">識別子</anchor>の体系を定めています。</p><figure class="short 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:">文字コード名</anchor>の体系</figcaption><ul><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:">UTR #22</anchor><ul><li><cite xml:lang="en-us">UTS #22: CharMapML</cite> (<time>2017-06-01 07:35:01 +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.unicode.org/reports/tr22/tr22-8.html#Charset_Alias_Matching">https://www.unicode.org/reports/tr22/tr22-8.html#Charset_Alias_Matching</anchor-external></li></ul></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA charset</anchor> 名</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA charset</anchor> <code>MIBenum</code></li><li><code>charset-edition</code></li><li><code>charset-extension</code></li><li><code>encoding=&quot;&quot;</code></li><li><code>Encode.pm</code> の名前</li><li><cite>iconv</cite> の名前</li><li><cite>ICU</cite> の名前</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.Net</anchor> の Encoding 名</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Java</anchor> の Charset 名</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Python</anchor> の codec 名</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><cite xmlns="http://www.w3.org/1999/xhtml">Emacs</cite> の coding-system 名<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">coding-system</title></anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><cite xmlns="http://www.w3.org/1999/xhtml">Vim</cite>の符号化名<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Vimにおける文字コード</title></anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MySQL</anchor> の文字集合名</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-IR登録番号</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:">CCSID</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">POSIXロケール</anchor> 文字集合 (charmap 名) </li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XLFD</anchor> 文字集合 (registry-encoding)</li><li><code>encodingID</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:">フォント名</anchor></li></ul></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> この他に、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> であることのみを示せる<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="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> 
歴史的に見れば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターネット</anchor>では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA charset</anchor> の影響力がかなり強いものの、
それ単独で用いるほどカバー範囲と定義の厳密性はなく、
各種の実装はそれを取り込みつつ各分野の従来の慣習と統合する形を採っており、
似て非なる体系が大量に生じています。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値符号</anchor>を除けば、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字</anchor>で構成されるものが多いです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> 
稀に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非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:">非ASCII文字</anchor>は安全に使えないことが多いので、
矛盾した状況にも思えますが、稀とはいえ現に存在します。
とはいえ多くは仕様上認められていない利用方法です。</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 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="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字と小文字</anchor>は、区別しないことが多いです。
正規形が定義されていることもありますが、まず意味がないと考えて間違いありません。
実態としても様々な形で使われており、
文脈と個別の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>次第でどの書き方が多いという傾向は多少あれども、
強い慣習といえるものはありません。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 
似た構造の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</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>charset-edition</code> や <code>charset-extension</code>
のように識別子を多次元化する試みもありましたが、成功していません。</p><hr></hr><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:">文字コード</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="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</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="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> 
他の識別子の体系の識別子が移入されて使われることも多いのですが、
丸々同じものを採用せずにつまみ食い + 独自分、というパターンが非常に多いので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の正確な理解を妨げています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
たまに識別子に含まれる些細な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">記号</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>の違いで「この文字コードをこれこれというのは誤りで、
これこれというのが正しい」と主張する人が出現しますが、
そのような主張は正しくないことが多いです。
「これこれの場面ではこれこれの名前が正しい」
のような限定的な条件でしか成立しないことを、勝手に拡大解釈するタイプです。</p><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>体系の細かなバリエーションのどれを指しているのか明らかでない場合や、
正式な定義と世間の実態が乖離している場合が多くあります。
識別子の体系が細かなバリエーションを区別しているのに、
実態としては混用されているような場合もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 
こうした問題は解決しないまま <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</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="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</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:">文字コード名</anchor>に取り込まれていることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
狭義の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の体系の他に、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行文字</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:">動作オプション<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="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</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:">escape</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="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">照合順序</anchor>との組合せに名前が付与されていることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コードの自動判定</anchor>も1つの「文字コード」として名前が与えられていることがあります。
判定法の違いにもそれぞれ名前が与えられていることがあります。</p><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 xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の他、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エスケープシーケンス</anchor>で切り替えられる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化文字集合</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>の記述に用いられる符号化など、
狭義の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の体系といえるものの中にも性質が異なるものが混在しており、
識別子の体系はそれらを区別したりしなかったりしています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 
<code>x-user-defined</code>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">replacement</anchor>, 
<code>x-transparent</code>,
<code>default</code> <sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>Vimにおける文字コード</anchor> </sw-see>,
<code>prc</code> <sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>Vimにおける文字コード</anchor> </sw-see>,
<code>japan</code> <sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>Vimにおける文字コード</anchor> </sw-see>,
<code>raw-text</code>,
<code>no-conversion</code>,
<code>ASCII-8BIT</code>,
<code>undecided</code>,
<code>prefer-utf-8</code>,
<code>unknown-8bit</code>
のように特殊な「文字コード」もあります。</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> 
特殊な「文字コード」は特定の場面で認識され、特定の場面では認識されないなど、
扱いが通常の<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="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</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="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</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>の<ruby><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分集合</anchor><rt>サブセット</rt></ruby>、という関係性が成立する組合せが多数あります。
ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>と別の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>は全体としては互換性がないものの、
一部の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ビット組合せ</anchor>の割当は共通しているので、その範囲内ならどちらとしても解釈できる、
という組合せもいくつもあります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME charset</anchor> <code>US-ASCII</code> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME charset</anchor> <code>ISO-8859-1</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分集合</anchor>です。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 8859-1</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 8859-15</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><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:">MIME</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最小公倍数</anchor>を選ぶように求めています (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="145" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;145</anchor-internal>)。
しかし具体的にどう選ぶべきかは決めておらず、実装に丸投げしています。 </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="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:">MIME charset</anchor> <code>US-ASCII</code> よりも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA charset</anchor>
<code>ISO_646.basic:1983</code> の方が更に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分集合</anchor>ですが、
可能ならこれを使うべきなのかどうか定かではありません。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> 実際上は <code>US-ASCII</code> とするべきと考えられますが、
明文規定上そう考えるべき理由は無さそうに思われます。</p></example><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> 
当時も今も、このような扱いづらい規定を厳密に適用している実装はさほど多くありません。</p><section><h1>charset 最小化</h1><p><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> 一般に <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>」
たる<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="265" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;265</anchor-internal></src>
(<dfn>charset最小化</dfn>)。</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="146" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[146]</anchor-end> 例えば <code class="charset" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-8859-<var xmlns="http://www.w3.org/1999/xhtml">X</var></anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">左半分</anchor>しか使わないなら、
<code class="charset" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">US-ASCII</anchor></code> を使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきです</strong></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="265" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;265</anchor-internal></src>。</p></example><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="147" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[147]</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>は高いかもしれません。</comment-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="265" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[265]</anchor-end> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2046</anchor> - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</cite> (<time>2015-03-22 13:14:46 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc2046#section-4.1.2">http://tools.ietf.org/html/rfc2046#section-4.1.2</anchor-external></li></ul></refs><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:">MIME</anchor> では未知の <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/<var xmlns="http://www.w3.org/1999/xhtml">*</var></anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>は
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/plain</anchor></code> として扱うことになっています。
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor></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="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:">MIME charset</anchor> の最小化規則と、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP CGI</anchor> のような動的生成って本質的に相容れないもののような気がしませんかね。あるいは streaming 的なものとも。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">chunked符号化</anchor>の尾っぽ header を使えば何とかならなくもない気もするけど, クライアント側で届いたところからレンダリングが不能になって結局意味がない (サーバー側でデータ生成完了後に charset を判定して一気に送りつけるのと変わらない) し、よって steraming には使いようがないし。<ul><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> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal> の解法は最小化規則をあきらめちゃうしかないのかな。 CGI 動的生成はまだ最大の範囲を知ってそうなものだけど、 streaming だと知らないこともあり得る (多言語会談とか?) から、考えうる最大の charset (<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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <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> の考え方はつまり charset 指定の最大化であって、 MIME の考えとは全く逆になってしまう。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal> そもそも MIME の最小化規則は相互通信性最大化を目的としている。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SMTP</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">822</anchor> では基本的にやり直しが効かないから、一度で相手に伝える必要がある (概念上は)。一方 HTTP とかだと<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容折衝</anchor>もあるし、 (歴史的経緯のせいで) ブラウザの利用者の操作で文字コード選択が出来るから (メイラにもあるけど、 MIME の思想的には考慮外だと思う。) 一度で伝える必要性ってのはあんまりないのかもしれない。こういう考え方の違いがにじみ出てる気がする。</li></ul></p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> の当該規定は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 8859</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="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> 
その他に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">東アジア</anchor>の各社の独自<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">外字</anchor>が追加された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>を使っていても、
標準の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>だけなら標準の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>を名乗るべきだとする仕様上の根拠としても使えるものです。</p><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>でも<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:">IANA charset</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> 例えば <code>ISO-8859-1</code> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">windows-1252</anchor> の意味で使われ、
<code>Shift_JIS</code> は <code>windows-31j</code> の意味で使われています。</p></example><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>を厳密に使い分けるという意識がなく、
市場で広まっている識別子で当該<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="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:">文字コード</anchor>として完全に開けなくなるリスクより、
一部<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="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> 
本来なら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> がこうした傾向が見えた時点で何らかの技術的対応を行うべきだったのでしょうが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</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>IANA charset</anchor> </sw-see></p></section><section><h1>文字コードの判定における選定</h1><p><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> 
<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="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</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="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> 
判定器には3つの選択肢があります。</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> どれも等しく候補なのですから、すべてを<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="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:">文字コードの判定</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>を使っても同じ結果になるのですから、
どれを判定結果として返すかは成り行きで構いません。</li><li><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 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><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> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal> は、例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTMLにおける文字コード</anchor>の判定の場合、結果は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書の<f>文字符号化</f></anchor>として参照可能になります。
<code>document.charset</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="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;53</anchor-internal> に対しては反論もあるでしょう。もしそのような処理にとって重要なら、
<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="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> 
見落とされがちで <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;53</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:">フォントの選択</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>が変わって表示される場合があります。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>フォントの選択</anchor> </sw-see></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="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> 
同じような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">英文</anchor>でも
<code>ISO-8859-1</code> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">欧文</anchor>フォントで表示されるか、
<code>Shift_JIS</code> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">和文</anchor>フォントで表示されるかで意外と雰囲気がかわります。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</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>が変わる、
というのは読者にとってあまり快適ではない体験です。</p></example><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-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal> を実装するとしたら、例えば<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>文字コードの指定</anchor>, <anchor>文字コードの判定</anchor> </sw-see></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><p><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="en-US">GNU gettext - Bugs: bug #50357, xgettext doesn't recognise... <strong>[</strong>Savannah<strong>]</strong></cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Copyright 2016 Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.</anchor>著, <time>2017-02-22 15:05:12 +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://savannah.gnu.org/bugs/?50357">https://savannah.gnu.org/bugs/?50357</anchor-external></p></section></body></html>