Gauche:CP932とJISX0213の差異
Shiro(2016/10/05 13:41:59 UTC): 文字コードでハマることなどしばらく無かったのですっかり忘れておったよ…
Gaucheのエンコーディングのshift_jisはShift_JISX0213 (Shift_JIS 2004) で、WindowsのCP932の「ほぼ」互換なんだけど、少し違うところがある。そのひとつがいわゆる「立つ崎」https://ja.wiktionary.org/wiki/%EF%A8%91
これは元々のShift_JISには含まれず、CP932は拡張文字コードの #xfab1 を割り当てていたのだけれど、JISX0213で入ってJISコードの#x4f72 (Shift_JISに変換すると #x9892) になる。困ったことに、Shift_JISX0213では#xfab1の箇所に別の文字が割り当てられてる。
文字 | Shift_JISX0213 | CP932 |
﨑 | 9892 | FAB1 |
郫 | FAB1 | - |
なので「立つ崎」が含まれるCP932のファイルをshift_jisと指定して読み込むと、「郫」に化けてしまうわけだ。
エンコーディングを cp932
と指定すれば化けない。