[Flex][AIR] URLLoaderで取得したEUCのデータをutf-8にデコードする

| コメント(0) | トラックバック(0)
ActionScript内のStringは全部utf-8で管理されていて、ネットワークからデータを取得した時に

それがeuc-jpだと、文字化けてしまう。


サーバーサイドが自分で変更できるなら、他の文字コードに変換してから送ればいいけど、

自分ではどうしようもなければ、クライアント側で変換しなければならない


それをLibraryとか使わずに、sdkの機能だけで頑張ってみた。


ポイントは、2つ

・受け取ったデータをバイナリで取得する。



・CompleteイベントでそれをStringに変換



これでいけるはず。


もしダメだったら、


とかも試してください


追記
System.useCodePage = true;は、外部からテキストを取得し、Stringオブジェクトに変換する際に、OSのデフォルトの文字コードを用いてutf-8にエンコードするというもの。

なので、URLLoaderでバイナリとしてデータを取得し(Stringオブジェクトに変換しない)、readMultiByteで任意の文字コードを指定してStringオブジェクトに変換ってやった方が、あとでバグが起きにくいかも。
あと、URLStreamクラスのreadMultiByteを使うっていう手もある。

readMultiByteでeucからではなくshift-jisから変換する場合は、第2引数に"shift-jis"と入れればおk

トラックバック(0)

トラックバックURL: http://blog.isocchi.com/MovableType/mt-tb.cgi/282

コメントする

このブログ記事について

このページは、isocchiが2008年8月18日 22:36に書いたブログ記事です。

ひとつ前のブログ記事は「[ハチロク世代]株式会社はてなを訪問しました」です。

次のブログ記事は「[Flex][AIR] ActionScriptでeuc-jpをURLエンコードする」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 5.0