Active Scaffold + Active Mailer + 絵文字
ActiveScaffoldを入れたRails上で、Auからの絵文字入りメールを処理し、絵文字のコードを画像に変換する。
ActiveScaffoldでは、list_column_helper.rbで定義されているclean_column_valueメソッドで、htmlタグのエスケープを各カラムに対して行うので、ここで一緒に絵文字コードをimgタグに変換するスクリプトを追加すればよい。
AUメールはJISで送られてくる。
1b2442=>漢字コード開始
1b2842=>ASCIIコード開始
AUの絵文字は漢字コードよりもさらに上を使用しているので、漢字コードには引っかからず、1b2442(\$Bうんちゃらかんちゃら)などと表示される。これを抜き出してAUの文字コードかどうかを判別すればよい
メールを処理するモデルMailer.rbでメールの本文をjisからUTF-8に変換しているが、絵文字の部分は変換されないために、生のJISコードが記録される。絵文字の中に通常の漢字が混じっていてもきちんと変換されない。
というわけで、メール処理時に絵文字部分を処理する必要がある。
メールの文章をscanメソッドで絵文字のコードにマッチする部分を全部探し出して、それを逐一変換していく。
1.アルファベット 絵文字 漢字
この場合は、\(B絵文字 を \(B絵文字コード\$Bと変換する
2.漢字 絵文字 アルファベット
絵文字 => \(B絵文字コード
\(Bアルファベット=>アルファベット
3.漢字 絵文字 漢字
絵文字 =>\(B絵文字コード
漢字 =>\$B漢字コードと変換する
もしくは、
2バイトコードか1バイトコードかの条件と漢字か漢字でないかの条件で
if byte_code == TRUE
に変換する