您的位置: 首页 > 技术文档 > 多媒体制作 > Flash与后台编码问题解决新方案
Flash MX 2004与WebService使用 回到列表 MX 2004系列中的多语言支持秘籍
 Flash与后台编码问题解决新方案

作者:Lj小杰 时间: 2003-11-10 文档类型:原创 来自:蓝色理想

在Flash MX的时候开始,就经常有人问为什么Flash载入的中文会是乱码?

后来大家都用了System.useCodePage=true;去解决这个问题。
可能大家都已经习惯了在Flash 5或以前,Flash完全没有理会编码时候吧。
大家都可能觉得,我在Flash5的时候可以很容易的载入外部文本,可以很容易的跟PHP, ASP等等的后台程序作信息交互。但是到了Flash MX的时候,同样的方法却出现了乱码。一定要在前面加上System.useCodePage=true;才可以解决问题。

大家可能都会觉得这是Flash的问题,觉得Flash MX的中文支持能力差了。但是,事实却刚刚相反。Flash MX, Flash 2004这些版本对编码的支持绝对是比Flash5好的。(废话,Flash5都没有任何编码的问题)大家可能对我的话有所怀疑,这不要紧,下面就让我说明一下吧。

大家都知道我们国家就已经有两种不同的编码了,分别是香港,台湾的BIG5和我们内地的GB2312。在Flash 5或以前,Flash完全没有理会编码问题,所有在Dynamic/Input Textfield显示的中文字,Flash是根据浏览者系统预设编码去显示。香港一般用Big5去编码文字,而大部分人都是用繁体中文Windows,所以一拍即合,可以显示到中文。对于英文或简体中文Windows浏览者,他们就无法显示到Dynamic/Input Textfield上的Big5编码繁体中文。以前的英文Windows用户,经常要靠外挂中文程式,例如:南极星或Richwin看中文网页,可惜这类软件对Flash里的中文字无法起作用,依旧是乱码。

但是从Flash MX开始,Flash就开始支持Unicode编码。

Unicode

Unicode能够支持多国不同文字在同一套编码架构中,所以能够在同一篇文章中,同时显示繁简体中文字和其他文字。Flash 6(Flash MX)开始支持Unicode,并将Flash Player 6或以上预设编码为Unicode(如果播放Flash 5的SWF就仍然是根据浏览者系统预设编码去显示),新手不知道这转变,动态载入外部档案,例如:

loadVariablesNum("text.txt", 0);

text.txt这档案里的中文用Big5编码,Flash Player 6则用Unicode,结果当然是显示乱码。

解决方法有两个:
一 强迫Flash使用“Flash 5原来编码方法”,在Frame 1加入指令:
System.useCodepage = true;
如果整个SWF都是使用“Flash 5原来编码方法”,就只需在Frame 1开始加一次便可。

二 使用unicode编码

服务端编程:
1.PHP/ColdFusion的开发者
请把你的PHP/ColdFusion存为UTF-8编码。
文本:文件->另存为->编码->UTF-8
DW2K4:File->New->Preference...->Default encoding->UTF-8
演示地址:
al4u.51.net/test.php



2.ASP的开发者
请把你的ASP存为UTF-8编码。
文本:文件->另存为->编码->UTF-8
DW2K4:File->New->Preference...->Default encoding->UTF-8
然后在顶上多加
<%@ codepage=65001 %>
就可以了
演示:
asp3.6to23.com/littlejie/test.asp

在Flash里面请别加入 System.userCodePage=true;

加了这指令之后,Flash对Unicode的文件将会显示为乱码。也就是说,你不能用Unicode编码了。如果不用utf-8编码,对于gb2312编码来说,是可以部分兼容繁体中文和一些日文编码的, 那是因为gb2312里面已经包括了这些编码,即所谓的gbk大字符集。这就让很多使用System.userCodePage的人觉得只要默认编码为gb2312,就可以做到解决编码问题。我在原先做的时候也是这样误解的,那是因为我没有测试别的语言,比如韩文。后来试了韩文之后,发现输入到数据库中的文字都变成了%#5234;%#1243;这样子的乱码。原来这些特殊语言的编码在gb2312里找不到,所以就被转成了字节编码。

所以,如果你只是想让繁体和简体之间没有编码问题,那只需使用gb2312编码就足够了,ie会帮你转换big5到gb2312。而如果要适应更多语言的浏览器,那么,你就必须使用万国码unicode。不过值得注意的是, 某些数据库不支持unicode。比如早些的mysql,现在的mysql已经支持了。这就需要强行转换编码,可以使用urlencode编码,或者base64也行。读取的时候再反编码回unicode。还有要注意的地方, 就是flash里面的文本框字体不能再用宋体了。而是需要用公用字体,比如Arial。 因为别的语言并没有宋体

特别鸣谢:在在,luar两位大哥.

点击这里参加讨论

出处:蓝色理想
责任编辑:qhwa

◎进入论坛Flash专栏版块参加讨论

相关文章 更多相关链接
《bbqi教你做Flash动画》节选
AS3.0概要–了解AS3.0的改变
SWF 文件安全策略修改器
Fireworks 8 英文版设置方法
可控声音 flash 教程
作者文章
为Flash构建 Java WebService
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2