从Flash MX发布开始
![](/icons/27909dou.gif)
就经常有人问:为什么Flash载入
![](/icons/27909de.gif)
中文会是乱码?
后来大家都用了
![](/icons/27909System.gif)
.useCodePage=true; 去解决这个问题
![](/icons/27909dou2.gif)
可能大家都已经习惯了在Flash 5或以前
![](/icons/27909dou.gif)
Flash完全没有理会编码
![](/icons/27909dou2.gif)
Flash5
![](/icons/27909de.gif)
时代
![](/icons/27909dou.gif)
![](/icons/27909de.gif)
确可以很容易
![](/icons/27909de.gif)
载入外部文本
![](/icons/27909dou.gif)
方便地跟PHP, ASP等等
![](/icons/27909de.gif)
后台
![](/icons/27909chengxu.gif)
作信息交互
![](/icons/27909dou2.gif)
但是到了Flash MX
![](/icons/27909de.gif)
时代
![](/icons/27909dou.gif)
同样
![](/icons/27909de.gif)
思路方法却出现了乱码
![](/icons/27909dou2.gif)
![](/icons/27909yi.gif)
定要在前面加上
![](/icons/27909System.gif)
.useCodePage=true;才可以解决问题
![](/icons/27909dou2.gif)
大家可能都会觉得这是Flash
![](/icons/27909de.gif)
问题
![](/icons/27909dou.gif)
觉得Flash MX
![](/icons/27909de.gif)
中文支持能力差了
![](/icons/27909dou2.gif)
个人觉得Flash MX, Flash 2004这些版本对编码
![](/icons/27909de.gif)
支持是比Flash5好
![](/icons/27909de.gif)
![](/icons/27909dou2.gif)
大家可能对我
![](/icons/27909de.gif)
话有所怀疑
![](/icons/27909dou.gif)
这不要紧
![](/icons/27909dou.gif)
下面我们慢慢介绍说明
![](/icons/27909yi.gif)
下
![](/icons/27909dou2.gif)
大家都知道几种区别
![](/icons/27909de.gif)
中文编码
![](/icons/27909dou.gif)
比如BIG5和GB2312等
![](/icons/27909dou2.gif)
在Flash 5或以前
![](/icons/27909dou.gif)
Flash完全没有理会编码问题
![](/icons/27909dou.gif)
所有在Dynamic/Input Textfield显示
![](/icons/27909de.gif)
中文字
![](/icons/27909dou.gif)
Flash是根据浏览者系统预设编码去显示
![](/icons/27909dou2.gif)
如果Big5编码
![](/icons/27909de.gif)
文字配上繁体中文Windows
![](/icons/27909dou.gif)
会
![](/icons/27909yi.gif)
拍即合
![](/icons/27909dou.gif)
正常显示中文
![](/icons/27909dou2.gif)
对于英文或简体中文Windows浏览者
![](/icons/27909dou.gif)
他们就无法显示到Dynamic/Input Textfield上
![](/icons/27909de.gif)
Big5编码繁体中文
![](/icons/27909dou2.gif)
以前
![](/icons/27909de.gif)
英文Windows用户
![](/icons/27909dou.gif)
经常要靠外挂中文程式
![](/icons/27909dou.gif)
例如:南极星或Richwin看中文网页
![](/icons/27909dou.gif)
可惜这类软件Software对Flash里
![](/icons/27909de.gif)
中文字无法起作用
![](/icons/27909dou.gif)
依旧是乱码
![](/icons/27909dou2.gif)
从Flash MX开始
![](/icons/27909dou.gif)
Flash就开始支持Unicode编码
![](/icons/27909dou2.gif)
Unicode能够支持多国区别文字在同
![](/icons/27909yi.gif)
套编码架构中
![](/icons/27909dou.gif)
所以能够在同
![](/icons/27909yi.gif)
篇文章中
![](/icons/27909dou.gif)
同时显示繁简体中文字和其他文字
![](/icons/27909dou2.gif)
Flash 6(Flash MX)开始支持Unicode
![](/icons/27909dou.gif)
并将Flash Player 6或以上预设编码为Unicode(如果播放Flash 5
![](/icons/27909de.gif)
SWF就仍然是根据浏览者系统预设编码去显示)
![](/icons/27909dou.gif)
新手不知道这转变
![](/icons/27909dou.gif)
动态载入外部文件
![](/icons/27909dou.gif)
例如:
loadVariablesNum("text.txt", 0);
text.txt这档案里
![](/icons/27909de.gif)
中文用Big5编码
![](/icons/27909dou.gif)
Flash Player 6则用Unicode
![](/icons/27909dou.gif)
结果当然是显示乱码
![](/icons/27909dou2.gif)
解决思路方法:
![](/icons/27909yi.gif)
、强迫Flash使用“Flash 5原来编码思路方法”
![](/icons/27909dou.gif)
在Frame 1加入指令:
![](/icons/27909System.gif)
.useCodepage = true;
如果整个SWF都是使用“Flash 5原来编码思路方法”
![](/icons/27909dou.gif)
就只需在Frame 1开始加
![](/icons/27909yi.gif)
次便可
![](/icons/27909dou2.gif)
2、服务端编程
![](/icons/27909de.gif)
操作:
1.对PHP/ColdFusion
请把你
![](/icons/27909de.gif)
PHP/ColdFusion存为UTF-8编码
![](/icons/27909dou2.gif)
文本:文件->另存为->编码->UTF-8
DW2K4:File->New->Preference...->Default encoding->UTF-8
2.对ASP
请把你
![](/icons/27909de.gif)
ASP存为UTF-8编码
![](/icons/27909dou2.gif)
文本:文件->另存为->编码->UTF-8
DW2K4:File->New->Preference...->Default encoding->UTF-8
然后在顶上多加“ <%@ codepage=65001 %> ” 就可以了
注意:在Flash里面
![](/icons/27909dou.gif)
请不要加入 “
![](/icons/27909System.gif)
.userCodePage=true;”
加了这指令的后
![](/icons/27909dou.gif)
Flash对Unicode
![](/icons/27909de.gif)
文件将会显示为乱码
![](/icons/27909dou2.gif)
也就是说
![](/icons/27909dou.gif)
你不能用Unicode编码了
![](/icons/27909dou2.gif)
如果不用utf-8编码
![](/icons/27909dou.gif)
对于gb2312编码来说
![](/icons/27909dou.gif)
是可以部分兼容繁体中文和
![](/icons/27909yi.gif)
些日文编码
![](/icons/27909de.gif)
, 那是
![](/icons/27909yinwei.gif)
gb2312里面已经包括了这些编码
![](/icons/27909dou.gif)
即所谓
![](/icons/27909de.gif)
gbk大
![](/icons/27909zifu.gif)
集
![](/icons/27909dou2.gif)
这就让很多使用
![](/icons/27909System.gif)
.userCodePage
![](/icons/27909de.gif)
人觉得只要默认编码为gb2312
![](/icons/27909dou.gif)
就可以做到解决编码问题
![](/icons/27909dou2.gif)
我在原先做
![](/icons/27909de.gif)
时候也是这样误解
![](/icons/27909de.gif)
![](/icons/27909dou.gif)
那是
![](/icons/27909yinwei.gif)
我没有测试别
![](/icons/27909de.gif)
语言
![](/icons/27909dou.gif)
比如韩文
![](/icons/27909dou2.gif)
后来试了韩文的后
![](/icons/27909dou.gif)
发现输入到数据库中
![](/icons/27909de.gif)
文字都变成了%#5234;%#1243;这样子
![](/icons/27909de.gif)
乱码
![](/icons/27909dou2.gif)
原来这些特殊语言
![](/icons/27909de.gif)
编码在gb2312里找不到
![](/icons/27909dou.gif)
所以就被转成了字节编码
![](/icons/27909dou2.gif)
所以
![](/icons/27909dou.gif)
如果你只是想让繁体和简体的间没有编码问题
![](/icons/27909dou.gif)
那只需使用gb2312编码就足够了
![](/icons/27909dou.gif)
ie会帮你转换big5到gb2312
![](/icons/27909dou2.gif)
而如果要适应更多语言
![](/icons/27909de.gif)
浏览器
![](/icons/27909dou.gif)
那么
![](/icons/27909dou.gif)
你就必须使用万国码unicode
![](/icons/27909dou2.gif)
不过值得注意
![](/icons/27909de.gif)
是, 某些数据库不支持unicode
![](/icons/27909dou2.gif)
比如早些
![](/icons/27909de.gif)
mysql
![](/icons/27909dou.gif)
现在
![](/icons/27909de.gif)
mysql已经支持了
![](/icons/27909dou2.gif)
这就需要强行转换编码
![](/icons/27909dou.gif)
可以使用urlencode编码
![](/icons/27909dou.gif)
或者base64也行
![](/icons/27909dou2.gif)
读取
![](/icons/27909de.gif)
时候再反编码回unicode
![](/icons/27909dou2.gif)
还有要注意
![](/icons/27909de.gif)
地方
![](/icons/27909dou.gif)
就是flash里面
![](/icons/27909de.gif)
文本框字体不能再用宋体了
![](/icons/27909dou2.gif)
而是需要用公用字体
![](/icons/27909dou.gif)
比如Arial
![](/icons/27909dou.gif)
![](/icons/27909yinwei.gif)
别
![](/icons/27909de.gif)
语言并没有宋体