智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...

导航

加载GB2312编码

Posted on 2010-02-27 23:52  Bill Yuan  阅读(760)  评论(0编辑  收藏  举报

请写出AS3加载GB2312编码的文本,如何才能真正的解决乱码问题。

AS3中,System.useCodePage url编码和escape编码的函数都没有影响了。不论什么设置,都仍然用utf8来处理。
从编码到字符的转换,AS3不能用chr()函数了,只剩下String.fromCharCode()方法了。而这个方法还只支持utf8,不支持别的字符集。
如果需要从gb2312的编码到汉字的转换,需要借助AS3新增的ByteArray类,实现方法如下:

代码
var loader:URLLoader = new URLLoader(new URLRequest("x.html"));
loader.dataFormat 
= URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, complete);

function complete(event:Event):
void {
    var BA:ByteArray 
= new ByteArray;
    BA.writeBytes((event.target as URLLoader).data);
    BA.position 
= 0;
    trace(BA.
readMultiByte(BA.length,"gb2312"));