彻底解决乱码

彻底解决乱码

此文章从蓝色理想转至原文链接:http://bbs.blueidea.com/thread-2887754-1-1.html

彻底解决乱码:Flash 5及其之前版本的编码标准是以系统编码为标准的.但Flash MX以后开始支持Unicode,并将Flash Player 6或以上版本预设编码为Unicode,如果Flash载入非Unicode编码时,(比如一个ANSI方式保存的文件)就会出现乱码.解决方法有两种:第一种是下策,即强迫Flash使用Flash 5的编码方法,在第一帧加入 System.useCodepage = true;这种方法虽然暂时解决了中文系统的乱码问题,但对程序的兼容性和扩展性极为不利.比如:你用的是GB(简体中文)编码的系统,当一个不是用GB编码的系统观看你的Flash时,他看到的依然是乱码.6 |5 z: d! j; ~7 h第二种是上策,即利用Unicode编码的一个最常用的实现方法”UTF-8″(Unicode Transformation Format – 8 bit)来实现,最简单的办法就是在保存文件时用编辑软件(比如Windows记事本)保存时在”编码”选项处选择”UTF-8″编码形式,形成文本编码和Flash编码统一.从而消灭乱码.

可这样不算彻底解决。Flash加载的很多文件都可能不是自己创建的,也不能要求别人也转换编码保存一次啊

其实这个问题也是可以解决的,在flash里面提供了如何实现代码转换的方法,txt.wordWrap = true;var urlloader:URLStream = new URLStream ();var onComplete:Function = function ( event:Event ):void {var str:String = urlloader.readMultiByte ( urlloader.bytesAvailable , “gb2312″ );var xml:XML = new XML ( str );txt.text = xml.toString( );}urlloader.addEventListener ( Event.COMPLETE , onComplete );//具体地址写在这里//txt里面可能使用gbk等编码方式进行保存和发送的……//var req:URLRequest = new URLRequest (“”);urlloader.load (req);

URLStream对象的readMultiByte 方法—————官方说明:使用指定的字符集从字节流中读取指定长度的多字节字符串。

参数 length:uint — 要从字节流中读取的字节数。

charSet:String — 表示用于解释字节的字符集的字符串。 可能的字符集字符串包括 “shift_jis”、”CN-GB”、”iso-8859-1″”等。 有关完整列表,请参阅Supported Character 。注意:如果当前系统无法识别 charSet 参数的值,则 Flash Player 将采用系统的默认代码页作为字符集。 例如,charSet 参数的值(如在使用 01 而不是 1 的 myTest.readMultiByte(22, “iso-8859-01″) 中)可能在您的开发计算机上起作用,但在其它计算机上可能不起作用。 在另一台计算机上,Flash Player 将使用系统的默认代码页。

返回 String — UTF-8 编码的字符串。

引发 EOFError — 可读取的数据不足。

关键就在于 不是使用URLLoader进行传输,而是使用URLStream进行传输,通过URLStream对象的readMultiByte 方法进行代码转换,这样中文传输就不会有乱码了。

相关风雨

微信偷偷更改了“公众号关注量”上限……
mobile bt365体育投注

微信偷偷更改了“公众号关注量”上限……

🌊 07-11 💨 阅读 3381
韩国对墨西哥世界杯首发(韩日世界杯决赛比分是多少)
bat365在线平台网站

韩国对墨西哥世界杯首发(韩日世界杯决赛比分是多少)

🌊 07-29 💨 阅读 9327
阿根廷国家五人制足球队
365365bet

阿根廷国家五人制足球队

🌊 08-01 💨 阅读 6672
系统天地小编推荐4款热门影子系统软件供你们选择
mobile bt365体育投注

系统天地小编推荐4款热门影子系统软件供你们选择

🌊 10-16 💨 阅读 5021