转自:http://www.cuplayer.com/player/PlayerCodeAs/2013/0120668.html 感谢!!!
请写出AS3加载GB2312编码的文本,如何才能真正的解决乱码问题。
AS3中, System.useCodePage 对 url编码和escape编码 的函数都没有影响了。不论什么设置,都仍然用 utf8 来处理。
从编码到字符的转换,AS3不能用chr()函数了,只剩下 String.fromCharCode() 方法了。而这个方法还只支持utf8,不支持别的字符集。
如果需要从gb2312的编码到汉字的转换,需要借助AS3新增的ByteArray类,实现方法如下:
var loader:URLLoader = new URLLoader(new URLRequest("CuPlayer.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"));
}
补充:正则中需要转义的特殊字符
* . ? + $ ^ [ ] ( ) { } | \ /