iPhoneの波ダッシュと全角チルダ
- 多くの場合、どちらを使っても特に問題はないのだが、条件によっては、これが原因となって文字化けしたりする*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がリッチテキストメールを生成する際に使用するUnicode→Shift_JISの変換テーブルにはU+301C(波ダッシュ)のフォールバックマッピングが含まれていない、というわけで化けるのだと思う。
*1:iPhoneの波ダッシュと全角チルダにかかわる文字化けネタは、akane_nekoさんに垂れ込んでいただきました。毎度どうも!