docomo発@i.softbank.jpアカウント宛のメッセージがLionのMailで化ける
- もうとっくに時機を逸しているのだけれど、Appleのディスカッションフォーラムで見かけた「docomoのケータイから@i.softbank.jpアカウント宛に送ったメッセージ全体がLionのMailで文字化けする」という話題に反応して、ちょっと検証してみたので、メモ。以下、フォーラムに投稿するノリで書いたので、ですます調。
- ケータイキャリア各社は、メールの宛先のアドレスをキーとして、絵文字の他社向け変換サーピスを提供しています。たとえばdocomoからdocomo、au、SoftBankのケータイにクリスマスツリーの絵文字を送った場合、下図のようにdocomoのゲートウェイがよろしく変換します。
- 通常のパソコンは、ケータイと違って絵文字を表示できません。そこで、docomoのゲートウェイは、xxxx@hoge.co.jpのようなパソコンのアドレス宛のメッセージでは、絵文字を〓に変換して送信します(下図)。ここまでは、まあ、シンプルな話です。
- LionのMailには、ケータイ絵文字を表示する機能があります。でも、上図で見たように、docomo発のパソコン宛のメッセージでは、絵文字は原則としてあらかじめ〓になっていて、元には戻せません。例外は、@gmail.com宛および@i.softbank.jp宛のメッセージです。
- Gmailのウェブや専用アプリはケータイ絵文字に対応しています。なので、docomoのゲートウェイは、@gmail.com宛のメッセージでは、絵文字を含んだdocomoのShift-JISをそのまま送信します。LionのMailは、相手のアドレスを手がかりとして、このような「生のケータイのメッセージ」を解釈して表示します。というわけで、LionのMailと@gmail.comアカウントの組み合わせなら、docomoのケータイと絵文字のやりとりができます。一方、SoftBank iPhoneは、charset=SHIFT_JISのメッセージを、すべて「SoftBankのShift-JIS」と見なして変換・表示します。その結果、「docomo発の@gmail.comアカウント宛のメッセージ」をSoftBank iPhoneで表示すると、絵文字が化けてしまいます(下図)。
- @i.softbank.jpは、パソコンのメーラーで使うこともできますが、基本的にはSoftBank iPhone用のアカウントです。docomoのゲートウェイは、@i.softbank.jp宛のメッセージを、SoftBankのShift-JISに変換して送信します。ところがすでに述べたように、LionのMailは相手のアドレスを手がかりとしてケータイ絵文字を解釈するので、この「SoftBankのShift-JIS」を「docomoのShift-JIS」として解釈します。クリスマスツリー(SoftBankの0xF973)は「mail to」(docomoの0xF973)と解釈されて、化けます。このケースでは、化けるのは絵文字だけですから、本題の現象とは異なります。ここまでは、前置きです。
- docomoのケータイから@i.softbank.jp宛に、今度はクリスマスツリーではなくプレゼントの絵文字を送ってみます。docomoのゲートウェイは、これをSoftBank絵文字のプレゼント(0xF752)に変換します。そしてLionのMailは、0xF752を「docomoのShift-JIS」として解釈しようとします。が、「docomoのShift-JIS」には0xF752への割り当てが存在しません。そのような場合に、Mailがパニックって(?)、メッセージ全体をISO-8859-1として解釈したような化け方をするようです(下図)。このケースでは、テキストエンコーディングを「自動」から「日本語(Windows,DOS)」に変更すれば、絵文字以外の文字化けは直ります。