as3载入非UTF-8编码的XML文件问题

By:www.cordyblog.cn Date:2009-04-26

最近的一个项目,里面需要用as3载入xml,xml由PHP输出,编码为gbk。as3里用了System.useCodePage=true。

调试时发现时不时会出现错误:TypeError: Error #1088: 文档中根元素后面的标记格式必须正确。特别是数据稍大一点的时候。

经调试发现载入的数据在XML末端有时会莫明其妙跟上一串随机乱码。

检查了PHP确定格式无误后,明白了这是flash as3使用了System.useCodePage=true后的BUG。。

网上解决办法是使用utf-8的格式。可是现在全站都统一为GBK了,接口又多,改起来很麻烦。

于是结合的XML特定格式,在flash上想了个小小的办法,轻松搞定了。

下面把我的办法共享一下吧。

AS3.0 部分代码
  1. ......   
  2. private function onLoadComplete(e:Event):void {   
  3.     var loader:URLLoader=e.currentTarget  as  URLLoader;   
  4.     var data=loader.data;   
  5.     data=data.substr(0,data.lastIndexOf(">")+1);   
  6.     var xml:XML=new XML(data);   
  7.     ............       
  8. }   
  9. ................  

看出来了吧,其实就是把多出的随机字符串过滤一下,因为xml必定是以'>'结尾的,将最后的'>'之后的字符都去掉就OK了。也不用全站都改代码了。需要的朋友可以参考一下吧。

参与讨论去: 艾睿(Airia) 交朋友去:友吧推荐文章去:网站贴吧
企业招聘

北京中视力天文化传媒有限公司

公司简介:北京中视力天文化传媒有限公司,是CCTV.com央视国际网络有限公司投资的互联网研发团队。我们是天使的使者。。。

招聘FlashAS程序员详情点击

Copyright 2007-2008 51AS.com Extended in kingcms 鲁ICP备06001158号