Mac OS XのUnicode to CP932変換テーブルは、なぜMicrosoftのものと違うのだろう

  • 前回書いたように、Apple Mailはcharset=CP932の場合、いわゆるハシゴ高(U+9AD9)を0xEEE0で符号化する。また、テキストエディットを使用してテキスト書類を「日本語(WindowsDOS)」形式で保存した場合も、同様の結果となる。
  • CP932では、ハシゴ高は「NEC選定IBM拡張文字」(89〜92区相当)と「IBM拡張文字」(115〜119区相当)に重複して含まれ、0xEEE0は前者の符号位置である。
  • つまり、Apple Mailやテキストエディットは、UnicodeからCP932への変換において、(単純化して書けば)「NEC選定IBM拡張文字」を「IBM拡張文字」よりも優先するテーブルを用いている。Apple製のソフトウェアではないJedit Xも同様の仕様だから、おそらくAPIレベルでそうなっているのだろう。
  • 一方、Microsoftの用いているテーブルは、「IBM拡張文字」優先のようだ(Microsoftサポートオンラインのを参照)。
  • Mac OS Xが、なぜMicrosoftと異なる変換テーブルを採用しているのかは不明。