欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

彻底消灭Flash动画中的乱码

程序员文章站 2022-06-08 21:05:41
  鉴于很多人用 System.useCodepage = true 这个属于下策的方法来解决乱码,而且还不知道为什么,所以打算让不知道的朋友了解如何彻底消灭乱码。 关于编码的基础知识: 每个国... 08-10-06...
  鉴于很多人用 system.usecodepage = true 这个属于下策的方法来解决乱码,而且还不知道为什么,所以打算让不知道的朋友了解如何彻底消灭乱码。

关于编码的基础知识:
每个国家/区域都规定了计算机信息交换用的字符编码集,比如美国的扩展ascii码,中国的gb2112-80,日本的jis等,做为该国家/区域内信息处理的基础,有着统一编码的重要作用。早期的软件为了解决本地字符信息的计算机处理,出现了各种本地化版本(l10n),为了区分,引进了lang(语言),codepage(编码)概念。但由于各个本地字符集代码范围重叠,相互间信息交换困难,软件各个本地化版本独立维护成本较高,因此有比较将本地化工作中的共性抽取出来,作一致处理,各种语言信息被进一步规范为locale信息。处理底层字符集变成了几乎包含了所有字形的unicode。

一、什么是unicode
unicode给每个字符提供了一个唯一的数字,不论什么平台,不论什么程序,不论什么语言,unicode标准已经被这些工业界的领导们所采用。例如:apple、hp、ibm、justsystem、microsoft、oracle、sap、sun、sybase、unisys和其它许多公司。最新的标准都需要unicode。例如:xml、java、ecmascript(javascript)、ldap、corba3.0、wml等等,并且,unicode是实现iso/iec 10646的正规方式。许多操作系统,所有最新的浏览器和许多其它产品都支持它。unicode标准的出现和支持它工具的存在,是近来全球软件技术最重要的发展趋势。

二、unicode的优点
基本上,计算机知识处理数字,它们指定一个数字来存储字母或其它字符。在创造unicode之前,有数百种指定这些数字的编码系统。没有一个编码可以包含足够的字符,这些编码系统也会相互冲突。也就是说,不同的编码可能使用相同的数字代表两个不同的字符,或使用不同的数字代表相同的字符。比如:简体中文(gb),繁体中文(big50)中“赵”都是一个字,但是编码不同。在不同的编码下,big5码的“赵”对应的数字是0xbbaf,而数字0xbbaf在gb码中对应的却是“化”,这就是乱码.而unicode采用统一的编码,“赵”就只有一个,不管它在哪种文字编码下。

三、彻底解决乱码
flash 5及其之前版本的编码标准是以系统编码为标准的。但flash mx以后开始支持unicode,并将flash player 6或以上版本预设编码为unicode,如果flash载入非unicode编码时,(比如一个ansi方式保存的文件)就会出现乱码。

解决方法有两种:
第一种是下策,即强迫flash使用flash 5的编码方法,在第一帧加入:system.usecodepage = true;这种方法虽然暂时解决了中文系统的乱码问题,但对程序的兼容性和扩展性极为不利。比如:你用的是gb(简体中文)编码的系统,当一个不是用gb编码的系统观看你的flash时,他看到的依然是乱码。
第二种是上策,即利用unicode编码的一个最常用的实现方法“utf-8”(unicode transformation format - 8 bit)来实现。最简单的办法就是在保存文件时用编辑软件(比如:windows记事本)保存时在“编码”选项处选择“utf-8”编码形式,形成文本编码和flash编码统一,从而彻底的消灭乱码。