読者です 読者をやめる 読者になる 読者になる

Shut the fuck up and write some code

グダグダ言わずにコードを書きたいブログ

XMLを読み込む時は文字コードに注意

去年の夏にFL2ではxpathAPIが動かないっぽい旨のエントリを書いていて、動かない現実を見ながらも「普通動くよなあ」と疑っていたくせに、当時はFL2案件もなく業務で使うこともないので、そのまま再検証することなく忘れてしまって放置、そして今日に至っていたわけですが、最近になりCASA frameworkがFL2/3で使えるのかどうか検証していて、XML読込みを試していたところ、やはりエミュでは動くものの実機では表示されず、「これ原因他にあるな」と改めて再調査してみた。


結果:「xpathAPI動くし文字もちゃんと表示されるやん!」

原因:携帯の文字コードではUTF-8は使えないのでXMLファイルはShift-JISにして読み込まねばならない。


こちらが詳しい。
flashlite2.0でXMLからimg,txtを読み込みたいのですが

自分がW51CAで検証してみたところ、Flash側で

System.useCodepage=true

で宣言して、XMLファイルの文字コードをShift-JISにしたら読込みとxpathでのパースが動作しました。CASAも動作。

携帯の文字コードはShift-JISベースだったことすっかり失念していた。なのでFlashLite側も文字コードを合わせてやらないとダメ、ということ。その辺り一部の端末やキャリアごとでバラつきがある可能性があるので一概には言えませんが、「XMLがうまく動作しなかったら文字コードを疑え!」というパターンは作っても良いかと思う。あと上記参照先リンクではUTF-8でも力技で読み込む方法紹介されているのでそちらを参考にしてもいいんじゃないでしょうか。(早く見つけたかった…。)

これでXMLは扱いやすくなるかなー、と思いながらもボタン押さなきゃファイルを読みに行かない仕様では外部ファイル参照って使いにくい。906(のフルブラウザ)はこの辺も仕様変わっているのかな?

それにしても一年経って解決して、当時自分の検証能力もどうかしているがorz、ああ相当病んでたんですよ…ソース晒したいけど汚いので諦め…。