swfmillとFLASHLITE
昨日はFLASHLITEをswfmillでいじるのに思いきりハマってしまった。
結果的には文字コードの問題だった。KLabの記事によると、日本語を含むFlash Lite 1.xのswfファイルをswfmill swf2xmlしてみたところ、”error : xmlEncodeEntitiesReentrant : input not UTF-8“というエラーメッセージがでて、xmlファイルの出力が途中で止まってしまうのは、Flash Lite 1.xで日本語swfの中の文字コードはcp932、Flash Lite 2.x以降のswf内文字コードはUTF-8のために起こるようだ。
swfmillがlibxml2を利用するときはかならずUTF-8になるため、cp932の文字コードの入ったswfファイルを扱えば文字が化ける。もっともな理屈です。
上記のKLabのサイトではこのcp932に対応したWindowsで利用できるバイナリも用意してくれていたので試してみました。swfmill利用時に -e cp932 オプションを付けるだけです。
すると私が扱っているswfファイルでは以下のようなことになりました。
・SWFからXMLファイルの生成はできる
・画像の入れ替えはできた
・一部文字が化けました。(「修」という文字から先の文字列)
・urlのリンク先変更ができない。
自分の環境でビルドしないと問題は解決しないのだろうか・・・。
その他参考URL:
http://tmty.jp/2009/04/16/generate_flash_lite_on_server/
http://d.hatena.ne.jp/haru-komugi/20090213/1234541317
人気度: 13%
