AS3で文字コードがUTF-8ではないWebページにアクセスしてテキストデータを取得して、それを文字列として自由に扱いたい場合のメモ。
問題は、AS3の文字コードUTF-8ではない場合、文字化けしてしまうということです。UTF-8に変換する
必要があります。
- バイナリのストリームを使う
myLoader.dataFormat = URLLoaderDataFormat.BINARY;
- 文字コードを変換する
byteArray.readMultiByte(byteArray.length, “shift-jis”);
var myLoader:URLLoader = new URLLoader();
myLoader.dataFormat = URLLoaderDataFormat.BINARY;
var myRequest:URLRequest = new URLRequest(“URL”);
//ロード完了時の処理をイベントリスナーに登録
myLoader.addEventListener(Event.COMPLETE, onComplete);
myLoader.load(myRequest);
function onComplete (eventObject:Event) {
var byteArray:ByteArray =eventObject.target.data as ByteArray;
//shift-jisからUTF-8 euc-jpはうまく動かないという情報があります。
var html_str:String = byteArray.readMultiByte(byteArray.length, “shift-jis”);
}