iPhoneの波ダッシュと全角チルダ

  • iPhoneで「〜」を入力したいとき、「から」と打って変換すると、(Mac風に)U+301C(波ダッシュ)になる。


  • が、キーボードの「ー」や「-」をタップしてその仲間から「〜」を選ぶと、(Windows風に)U+FF5E(全角チルダ)になる。




  • 多くの場合、どちらを使っても特に問題はないのだが、条件によっては、これが原因となって文字化けしたりする*1。たとえば、SoftBank iPhoneからU+FF5E(全角チルダ)のほうを使って「やほ〜」というメッセージを送信すると、charset=Shift_JISになる(au iPhoneならcharset=CP932)。この時点ですでにちょっと珍しい動作なのだけれど、しかし、たいていのメーラーはこれを表示できると思う。もちろんiPhone Mailなら表示できる。


  • 次に、この「やほ〜」というメッセージに「ども〜」というコメントを付けて転送する。今度は「ども〜」の「〜」は、U+301C(波ダッシュ)のほうにしてみよう。

  • これを受信すると、「やほ〜」の「〜」は化けないが、「ども〜」の「〜」は文字化け記号(U+FFFD)や豆腐に化けている。


  • 理由をていねいに述べると長くなるので大ざっぱに言うと、①転送部分にU+FF5E(全角チルダ)が含まれていることによりcharset=Shift_JISになる、②iPhone Mailではメッセージを転送するとリッチテキストメールになる、③iPhone Mailがリッチテキストメールを生成する際に使用するUnicodeShift_JISの変換テーブルにはU+301C(波ダッシュ)のフォールバックマッピングが含まれていない、というわけで化けるのだと思う。

*1:iPhone波ダッシュと全角チルダにかかわる文字化けネタは、akane_nekoさんに垂れ込んでいただきました。毎度どうも!