スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ActionScript3.0で、文字コード変換を行うと、「TypeError: Error #1034: 強制型変換に失敗しました。」が表示される。

Shift-jisからUTF-8へコード変換を行うと、ByteArrayクラスで上記エラーが表示される。

原因は、データフォーマットの設定ミス。
(URLLoaderDataFormatクラス)
文字コード変換を行う時は、フォーマットをバイナリー指定する必要がある。

今回は、以下のコードを記述した。

// 外部テキストファイルはLoaderで読み込む
var loader:URLLoader=new URLLoader();
//text形式として受け取る。
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load(new URLRequest("dat.txt"));
//

function completeHandler(evt:Event):void {

  // shift-jisからUTF8に変換する。
    var byteData:ByteArray = new ByteArray(); 
    byteData = ByteArray(loader.data); 
    var src:String = byteData.readMultiByte(byteData.length, "shift-jis");

    textfield.htmlText = src;
}

上記コードの
loader.dataFormat = URLLoaderDataFormat.TEXT;
の部分は、
loader.dataFormat = URLLoaderDataFormat.BINARY;
と指定しなければならないが、フォーマット形式をテキストと指定していたため、
ByteArrayクラスが扱うことが出来なかった。
そのため、上記エラーが発生していた。

URLLoaderdataFormatクラスのパラメータをBINARY指定するようにする。

スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

e.swan

Author:e.swan
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。