さて、今回はairxmailを使って受信したメールを文字化けなく見る方法です。

問題の原因としては、airxmailでは文字コードの変換にByteArrayのreadMultiByte関数を使っていました。
そのために、受信したメールの文字コードがその関数ないでサポートされている場合には問題ないのですが、
Android上ではiso-2022-jpは処理ができないようです。

なので、airxmailではこのエンコード部分を外だしできるようにしました。
ただし、注意点が2つほどあります。

1)0.7には含まれていないので、Subversionのr110以降を取得してくる必要があります。
2) iso-2022-jp からUTF-8(内部処理コード)への変換は自前でする必要があります。

さて、それで対応の方法は以下のようにします。

AirxMailConfig.setDecodeCharetFunction(decodeJIS,'iso-2022-jp');

private function decodeJIS(bytes:ByteArray,charset:String):String{
   //  charsetの引数には、iso-2022-jp がきます。
   //  デフォルトでは以下のような処理が動きます。
   //  なんらかの方法で、自前で処理をしてください。
   //  return bytes.readMultiByte(bytes.bytesAvailable,charset);  
   return "";
}

とこんな感じです。

どうやら、Shift_JISは扱えるようです。
K-9 Mail( Andoridのメールアプリ)のソースを見たら
JISからShift_JISへの変換プログラムだけが特別に登録してありましたので、
どうやら、それで同じようにいけるのかなと思ってちょっと試してみたらいけるようでした。
AU IS03でのみの確認ですが、上の理由から他でも同じようにいけるのだと思っています。

今度、同じような方法で解決するようにしてみようかなと思っています。

あと、送信は現在このような自前エンコード処理はできません。
まあ、とりあえずはUTF-8で送信すればいいかなと思ったからです。

お仕事のご依頼・相談を承ります
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら

Leave a Reply

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2011年5月
« 4月   6月 »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ