关于Flash加载无Bom的Unicode文件报错问题

Flash要兼容非Unicode外部文件的正确读取,一般设置System.useCodePage = “true”
但此时如果你的文件是Unicode,如utf-8,而没有BOM(http://www.unicode.org/faq/utf_bom.html#BOM)
则flash载入解析为XML时将报错:TypeError: Error #1090
因为其中的中文等字符成了乱码,不能正确读取XML结构,故解析错误
一般情况用记事本等编辑工具保存为utf-8编码时会自动在头加上BOM:
utf-8的BOM为:EF BB BF 
用服务端语言生成utf-8编码的xml时,如asp,并没有自动添加BOM,导致flash不能加载动态xml数据
这里可在asp文档开头强制写入一个BOM:
<%
Response.BinaryWrite(ChrB(239))
Response.BinaryWrite(ChrB(187))
Response.BinaryWrite(ChrB(191))
%>
如果php或其他也出现类似情况,请做相应处理,或采用非Unicode,如gb2312
 PHP:
$text=”\xEF\xBB\xBF”.$text;




[本日志由 bestmax 于 2009-04-21 01:46 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: flash BOM
评论: 1 | 引用: 0 | 查看次数: -
回复回复boyr[2009-07-09 12:56 AM | del]
现在没有这种情况了。
大概是播放器升级了。
去掉System.useCodePage = “true”,无论utf8有没有bom,flash都能正确加载。
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.