iPhoneの文字化けを防ぐ魔法の呪文

  • うん。ただまあ、ちょっと気にする人はいるかもなあ。
  • 男子に誤解されちゃう、と?
  • いや、そういうのじゃなくて、つまり、化けちゃうんだよね。
  • えっ?
  • 相手の環境によっては「♡」が化けるんだよ。
  • 何ですかそれ。文字化け対策で入れた文字が化けたら意味ないじゃないですか。
  • 意味はあるよ。iPhoneから送ったメールは相手先で全体が化けて読めなくなる可能性があるけど、「♡」でcharset=UTF-8にしておけば、この「全体化け」を防げるんだから。ただし、相手がケータイだったりすると、「♡」自体は「・」とか「?」とかになっちゃうってこと。
  • 自らは捨て石となってメッセージ全体を救うということですか。UTF-8になって、なおかつケータイでも表示できる文字ってないんですか?
  • 基本的には、ない*1Shift_JISにない文字を使うからこそcharset=UTF-8になるわけで。
  • うーん。相手がケータイの場合は、署名に「・」や「?」が入るのは仕方ない、と。
  • ところが、裏技がないわけでもない。
  • 要するに、あるんですね。
  • 詳しい説明は省くけど、iPhone Mailも含めてAppleのMailは、円記号とオーバーラインの扱いがちょっと凝ってるんだよね。さわりだけ言うと、ISO-2022-JPエスケープシーケンスでバックスラッシュやチルダと区別してエンコードするんだけどね*2
  • ……?
  • 技術的なことは聞き流してくれていいんだけど、つまり、円記号とオーバーラインはiPhone Mailでは「ISO-2022-JPでは送れるけどShift_JISやCP932では送れない文字」ということになる。で、たとえば「ISO-2022-JPでしか送れないオーバーライン」と「Shift_JISやCP932でしか送れないHORIZONTAL BAR」を混在させれば、charset=UTF-8になる。そしてこれらの文字は、ケータイでも「・」や「?」にならない。
  • はあ。
  • というわけで、わたしが開発した署名用の顔文字「バケヌくん」が、これなんだけどね。ほら、ドコモのガラケーでも化けてないでしょ。


  • なんか目つきが変わってますけど?
  • あえてワケありの文字を使ってるんだから、この程度の揺れはむしろ楽しむ方向で。
  • はあ。
  • どう? バケヌくん、署名に登録してみる?*3
  • やめときます。
  • まあね、バケヌくんだと、ちょっとカジュアルな印象になっちゃうからね。そこで、ビジネスにも使える署名用のパターンが、この「ラインくん」。


  • あのー、そういうレベルのネーミング、必要ですか? ていうかこれ、オーバーラインをいくつか並べただけじゃないんですか?
  • うん。
  • さっきは「オーバーラインを他の特定の文字と混在させることでUTF-8になる」って言ってませんでした?
  • うん、そうだよ。だから、このテストメールもISO-2022-JPだし。
  • それじゃ意味ないじゃないですか。
  • ところが、意味はあるんだよ。この例だと本文は「こんにちは!」だけど、全角チルダを使って「こんにちは~」って書くこともあるかもしれない。そうすると、ラインくんがいない場合は、charsetがShift_JISやCP932になって受け手の環境によっては「全体化け」しちゃうわけだ。でも、署名にオーバーラインが入っていると、全角チルダのような「文字化けの原因となる文字」が使われたときにだけ、その文字との組み合わせによってcharset=UTF-8になる。マニアにはたまらないギミックだよね!
  • ……。
  • どう? 署名にラインくん*4
  • やめときます。

*1:送信側がau iPhoneで受信側がauガラケーであれば、charset=UTは-8で送られた絵文字(au絵文字の範囲内)を表示できる。

*2:詳しくは「なぜ円記号はメールで化けるのか」を参照。

*3:今後の仕様変更などによっては逆に文字化けの原因となる可能性もあるトリッキーな方法で、なおかつ受信側端末のチルダのデザインによっては顔に見えなかったりするかもしれないので、おすすめするつもりはありませんが、バケヌくんを試してみたい方は、こちらをコピーしてご利用ください。  (‾―‾)/

*4:オーバーラインを並べただけで、それ以上のものではありませんが、ラインくんを試してみたい方は、こちらをコピーしてご利用ください。  ‾‾‾‾‾‾‾‾