Snow LeopardのMailはUTF-8のメールを量産する
- Apple Mail(Mail.app)がcharset=ISO-2022-JPのメッセージを表示する際の変換テーブルが、おかしい。
- WindowsとMacでは、JIS X 0208に含まれる文字の範囲において、下図のようなUnicodeマッピングの相違が存在する。たとえばWindowsはJIS X 0208の1区33点「〜」(波ダッシュ)をU+FF5E FULLWIDTH TILDEと解釈し、Macは同じ文字をU+301C WAVE DASHと解釈する。
- ところがMac OS X 10.6 Snow LeopardのMail 4.1(1076)は、Apple製の(そしてもちろんMac専用の)アプリケーションであるにもかかわらず、上図のすべての文字について、Windows側のマッピングによってcharset=ISO-2022-JPのメッセージを解釈する。
- その一方でMailは、「UnicodeからISO-2022-JPへ」の変換にはMacのテーブルを用いる。つまり、メッセージを引用して返信する場合、Windows式のテーブルでデコードし、Mac式のテーブルでエンコードすることとなる。このため、たとえば波ダッシュが含まれるメッセージを引用して返信すると、一度WindowsルールでU+FF5Eに変換された上で、Macルールで「U+FF5EはISO-2022-JPには変換できない」と判断され、ISO-2022-JPではなくUTF-8で送信される。
- TigerとLeopardのMailでも確認してみると、Snow Leopardほどではないが、やはりISO-2022-JPの解釈がおかしい(下図、ピンク地がWindows式のマッピング)。ポンド記号やセント記号などは波ダッシュほど頻繁に使われる文字ではないので、Tiger/Leopard時代には問題が顕在化することが少なかったのだろう。
- そのようなわけで、ダッシュ、波ダッシュ、マイナス記号といったよく使われる文字をWindows式に解釈するSnow LeopardのMailは、charset=UTF-8のメールを量産する予感。