2010年09月01日

Ruby auの絵文字をメールで受け取って表示させるとエラー

現象


絵文字あるのメールを
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",本文))

こんな感じです。

結果


一応エラー自体はなくなりました。
ただ、特定の絵文字を使うと他の日本語なども巻き込んで文字化け状態で表示されます。

絵文字を抜かす処理とか絵文字だったらメール受け取らないとかの処理をしないとかもなぁ。。。
携帯は面倒ですよねほんと
posted by RicK at 17:28| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/40482607

この記事へのトラックバック