ActionScript で日本語コード変換

まいった。(^^;

ActionScript で日本語コード変換でハマってます。
この糞忙しいのに、今日一日を棒に振ってしまったぁぁぁぁぁ・・・

WEB2MEMOで公開されている日本語文字コード変換ライブラリ『Jcode』を使って変換しようと思ってるのだがうまくいかん・・・

例えば、↓こんな感じで、Shift_JIS で書かれている HTML ソースを取ってきて、Shift_JIS→UTF-8 変換を行って表示したいとすると、

import com.web2memo.text.Jcode;

private function startProc():void {

    var req:URLRequest = new URLRequest("http://www.exsample.jp/index.html");
    var loader:URLLoader = new URLLoader(req);
    loader.addEventListener(Event.COMPLETE,loadComp);
    
}

private function loadComp(evt:Event):void{

    var loader:URLLoader = evt.target as URLLoader;

    var byteArray:ByteArray = new ByteArray();
    byteArray.writeMultiByte(loader.data, "shift_jis");

    var enc:String = Jcode.getInstance().detectEncode(byteArray);
    trace("EncCD=" + enc);

    var src:String = Jcode.getInstance().SJIStoUTF8(byteArray);
    trace("Source=" + src);

}

・・・で良いのかと思ったら、EncCD は EncCD=Shift_JIS と表示されるけど、src は化け化けで表示される。
Jcode.getInstance().SJIStoUTF8(byteArray) が効いてないということか。

例えば、

<!----- デジタルパンフレット用追加スクリプトここから----->
 ↓
<!----- ?f?W?^???p???t???b?g?p??A?X?N???v?g?±?±?c?c----->

こんな具合だ。

うーむ・・・わからん。

何かの間違いでたまたまこのブログに流れ着いた識者の方。ぜひご教示くださいませ。(^^;

ちなみに日本語変換が必要だと思ったのは、Shift_JIS や EUC-JP で書かれた「狂った」RSS フィードに対応するため。
でも、そもそも、RSS フィードを Shift_JIS や EUC-JP で書くのがおかしいんだから、本当は対応しなくても良いんだよな。

ちゅーことで、水曜日中には動く形にしたいので、取りあえず UTF-8 のみ対応の形で良いだろう。(それで、99.9% の RSS フィードは読めるはずだから)


ActionScript用日本語文字コード変換ライブラリ『Jcode』
http://web2memo.blog120.fc2.com/blog-entry-221.html

トラックバック(0)

このブログ記事を参照しているブログ一覧: ActionScript で日本語コード変換

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/357

コメント(6)

はじめまして

私も同じ悩みを抱えております。

ActionScriptがさっぱりわかりません。

'ByteArray'をロードできませんでした。

と出て ByteArray すら使えません。

日本語を使える解決策が見つかれましたら
是非、情報公開をお願い致します。

ちなみに

以下、ソースの
menu_label:Array
の中身をボタンとして表示するように作られているのですが
配列の中身が半角英数だと無事に表示されます。

漢字だと表示されません。

下記の場合、
「製品」だけが表示されません。

どうすれば日本語が表示されるようになるのでしょうか?


import com.web2memo.text.Jcode;

menu_item_group.menu_item._visible = false;
var menu_label:Array = new Array("製品", "Biography", "Services", "Portfolio", "Clients", "Contact");

var total:Number = menu_label.length;
var distance_y:Number = 34;
var i:Number = 0;

for( ; i < total; i++ )
{
menu_item_group.menu_item.duplicateMovieClip("menu_item"+i, i);
menu_item_group["menu_item"+i].over = true;
menu_item_group["menu_item"+i].item_label = menu_label[i];
menu_item_group["menu_item"+i].item_no = i;
menu_item_group["menu_item"+i]._y = i * distance_y;
trace("Array=" + menu_item_group["menu_item"+i].item_label);
}
function change_page(no):Void
{
for( i = 0; i < total; i++ )
{
menu_item_group["menu_item"+i].flashmo_button._visible = true;
menu_item_group["menu_item"+i].over = true;
menu_item_group["menu_item"+i].flashmo_button.onRollOver = function()
{
this._parent.over = false;
}
menu_item_group["menu_item"+i].flashmo_button.onRollOut = menu_item_group["menu_item"+i].flashmo_button.onDragOut = function()
{
this._parent.over = true;
}
menu_item_group["menu_item"+i].flashmo_button.onRelease = function()
{
_root.change_page(this._parent.item_no);
}
menu_item_group["menu_item"+i].onEnterFrame = function()
{
if( this.over == true ) this.prevFrame();
else this.nextFrame();
}
}
delete menu_item_group["menu_item"+no].flashmo_button.onRollOut;
menu_item_group["menu_item"+no].flashmo_button._visible = false;
menu_item_group["menu_item"+no].over = false;
_root.page = no + 1;
_root.play();
}
change_page(0); // the default page on load

こんにちわ。
僕もまだ勉強中なのでよくわかりませんが、これって
http://www.webdesignmo.com/blog/2008/07/14/editing-buttons-in-flash-templates/
のサンプルコードですか?

Flash CS4 かなんかで作られてるんですよね?
僕は AIR ガジェットの開発を Flex Builder 3 でやってるだけなので、Flash CS4 とかの開発手順はわかりませんが、これって、ボタンのラベルで使用するフォントに、日本語フォントではない、例えば Times New Roman とかを指定されているだけではないでしょうか?
日本語フォントを指定すれば表示されませんか?

JCodeで同じように悩んでいましたが

import flash.system.System;
System.useCodePage = true;

とすれば、解決しました。

コメント、ありがとうございます。
ちょっと今、ActionScript 案件をやってないので、今度さわる時に試してみて、結果はまたここに書きますです。:-)

shinoda様
メニューの日本語変換は解決いたしましたでしょうか?

私も同じ様に悩んでいます。

解決策ございましたら、教えてください。
どうぞよろしくお願いいたします。

コメントする

このブログ記事について

このページは、shinodaが2009年1月27日 02:32に書いたブログ記事です。

ひとつ前のブログ記事は「スープ&パスタ缶、つゆだくもつ煮込み缶」です。

次のブログ記事は「AIR-EDGE の解約」です。

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


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら