- ISO-2022-JPのWindows方言(CP5022x)は、現在も広く使われている。一方、あまり知られていないが、ISO-2022-JPのMac方言も存在する。以下、これを便宜的にISO-2022-JP–Macと呼ぶこととする。
- Apple Mailは、Tiger(Mac OS X 10.4)時代までは、ISO-2022-JP–Macのメールを送信していた。ただし、TigerのMailが送信したISO-2022-JP–Macのメッセージを同じMailで受信すると文字化けするという、よくわからない仕様だった。
- Leopard(Mac OS X 10.5)のMailは、方言の自動判別機構を備えていた。が、受信したメッセージがCP5022xであると判断した場合は(わざわざ判別したのに)外字をデコードせずにゲタにするという、これまたよくわからない仕様だった(詳しくは「Apple Mailの方言自動判別?」を参照)。
- Snow Leopard(Mac OS X 10.6)のMailは、Apple Mail史上初めて、CP5022xのデコードをサポートした。しかし、ISO-2022-JP–Macを完全に切り捨てたわけではなかった。方言自動判別の仕様が変わり、まともに機能するようになったのだ。
- 下図は、CP5022xとISO-2022-JP–Macの外字領域。グレー地(JIS換算で13区相当)が衝突する部分。Snow LeopardのMailは、charset=ISO-2022-JPのメッセージを受信した場合、基本的にはそれをCP5022xであると見なす。ただし、「ISO-2022-JP–Macにしか存在しないはずの文字」が含まれていた場合、そのメッセージがISO-2022-JP–Macであると解釈する。
- すなわち、CP5022xで送信された「①」(0x2D21)は「①」と解釈され、ISO-2022-JP–Macで送信された「①」(0x2921)も「①」と解釈される。
- もちろん、CP5022xとISO-2022-JP–Macの外字領域には衝突する部分があるので、完全な自動判別は無理。衝突領域の外字を含み、それ以外の外字を含まないISO-2022-JP–Macのメッセージを受信した場合、たとえば「㈱」は「⑭」と解釈される。
- その他、細かいことを言い出せば、CP5022x外字のうち重複するもの(「≒」など)の扱いとか、ISO-2022-JP–Mac外字の一部はUnicodeに含まれないので表示できないとか、Unicodeに含まれていても入った時期によっては変換テーブルから漏れているとかいろいろあるのだが、このあたりの話は省略。
–元ネタ–