現象
絵文字あるのメールを
NKF.nkf("-w",本文)
として保存して表示させると。
auの場合hメソッドをつけているにもかかわらず意味不明な記号のような漢字のようなものになって表示のときにエラーになります。
docomoだと=になります。
softbankはためしてないのでわかりません。
auの場合も、特定の絵文字のみで(例えば鉛筆の絵文字)、
他の絵文字だと保存する前に消滅したり、明らかに常用語でない漢字になって
絵文字が表示されなかったりします。
とりあえずエラーはまずいのでエラーをなくします。
環境
ruby1.8.6
NKF2.0.7
原因
どうやらNKFの2.0.7以前のものにはMIMEをエンコードすると正しく出力されないバグがあるらしいです。
対策
1、ライブラリーを2.0.8以降のものにする
2、おかしいのはutf-8らしいので、一度他の文字コードにしてから変換
自分は2でやりました。
NKF.nkf("-w",NKF.nkf("-j",本文))
こんな感じです。
結果
一応エラー自体はなくなりました。
ただ、特定の絵文字を使うと他の日本語なども巻き込んで文字化け状態で表示されます。
絵文字を抜かす処理とか絵文字だったらメール受け取らないとかの処理をしないとかもなぁ。。。
携帯は面倒ですよねほんと