webサイトをUTF-8で作っても,そのシステムから出すメールはISO-2022-JPじゃなきゃいけないようなことがよくあります.
(UTF-8はメーラーが対応してないとかで.いい加減に無くなっていいと思うんだが)
さらにはUTF-8だと表示フォントが変わるので違うとか言ってくるクライアントもいると思います.
で,UTF-8で丸数字(①とか)やカッコ株(㈱)を入力されると,その後メール本文で文字化けが起きます.
ISO-2022-JPだって丸数字とかカッコ株あるじゃーん,と一瞬思ってしまいますが,それは各メーカーの独自拡張です.
そんなわけでPHPでmb_convert_encodingしても文字化けしますし,iconvを通しても特殊文字変換できないよ!と言われて処理が止まります.
じゃぁどうすんのよ…
ということで今回はあらかじめそのへんの文字を変換してしまうことにしました.
㈱ は (株) と書けばいいし,① は (1) で代用することにします.
しかし文字コード表作るの面倒だなーと思ったら,やっぱり既にありました.感謝.
■
UTF-8で変換できない機種依存文字を置換する - memo.xight.org
ただしリンク先のコード '\xE3\x8B\xB0' の部分がシングルクォートなので,ダブルクォートにしないと正しく動きません.
これでもまだ見た目が違っちゃうよ!とかいうクライアントがいたら,がんばって説得しましょう….
参考
■
機種依存文字とUnicode - WebStudio