彻底消灭Flash动画中的乱码

所属分类: 媒体动画 / Flash教程 阅读数: 110
收藏 0 赞 0 分享
  鉴于很多人用 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编码统一,从而彻底的消灭乱码。
更多精彩内容其他人还在看

彻底消灭Flash动画中的乱码

  鉴于很多人用 System.useCodepage = true 这个属于下策的方法来解决乱码,而且还不知道为什么,所以打算让不知道的朋友了解如何彻底消灭乱码。 关于编码的基础知识: 每个国家/区域都规定了计算机信息交换用的字符编码集,比如美国的扩展ASCII码,中国
收藏 0 赞 0 分享

Flash游戏开发教程:第三节

请先阅读上一篇Flash教程:Flash游戏开发教程:第二节。 在具体讲解CLASS构造前,想花点篇幅帮小鸟们理解下CLASS是什么东东。 还是来举个例子,有一个机械战士的MC,这个MC里有机械战士完整的构造,手脚、身体、武器…… 但这个机械战
收藏 0 赞 0 分享

mc深度的排序值设置方法

mc电影符号设置深度值的方法 在程序的过程,我们会常换多个mc深度,让它叠在上边。flash给我提供只有:两个mc深度的互换,却没有设置深度值的方法. 本人设计了一个方法,就是可以设置mc深度的排序值。不过前提就是这些mc已级把深度排序好,放在一个数组里。这个没有什
收藏 0 赞 0 分享

Flash as简单制作鼠标跟随文字动画

[效果]: [步骤]: 1、拉一动态文本,实例名为_txt;转为影片剪辑,实例名为_mc。 2、在帧上写如下代码:
收藏 0 赞 0 分享

Flash游戏开发教程:第二节

请先阅读上一篇Flash教程:Flash游戏开发教程:第一节。 我们讨论下AS的问题。 先不急于动手打代码,我们先要想好这代码怎么个写法,怎么个安排。 好,现在小鸟们排好队,一个个来回答,你准备怎么写: 10个小菜鸟9个会回答:我X你的傻X~!还能怎么写?F9按了开始写啊&
收藏 0 赞 0 分享

Flash Actionscript 优化指南

第一章 AS3的一些优化计算方法 用乘法来代替除法(当除数可转化为有限数的时候)。比如var n:Number = value * 0.5;要比var n:Number = value / 2;快。但差别并不是很大。只有在需要大量计算情况下,比如3D引擎中差别才比较明
收藏 0 赞 0 分享

Flash游戏开发教程:第八节

请先阅读:Flash游戏开发教程:第七节 范例接宝游戏中得分显示类和时间控制类的CLASS讲解 事实上这两部分比较简单 所以并在一起讲解了 讲解前先点开FLA文件,把这两个MC看看,对MC构造了解了,才能写CLASS嘛~ 看下得分显示类的代码: class
收藏 0 赞 0 分享

ActionScript的API文档生成工具ASDoc

运用ASDoc工具 原文地址: http://livedocs.adobe.com/flex/3/html/asdoc_9.html 译者注: ASDoc是adobe官方提供的ActionScript的API文档生成工具,现在已经集成在FlexBuilder3中 打开ASD
收藏 0 赞 0 分享

新手来看:Flahs as入门教程

这里我只简单的介绍一下AS的基本常识。 首先我们要了解AS要写在什么地方,什么时候AS会被触发执行。 1、帧: 写在关键帧上面的AS,当时间轴上的指针走到这个关键帧的时候,就写在这个帧上面的AS就被触发执行了。常见的例子有在影片结尾的帧写上 stop() 等。操作方法就是点选
收藏 0 赞 0 分享

关于Flash层的深度处理问题

制作一套课件时,研究了一下关于层的深度处理问题,现做一下总结!所谓深度,不难理解,就是谁在上谁在下的问题,从而实现遮与被遮!(我的理解 ) 1、获得某对象所在的深度 MovieClip.getDepth 2、获得某个深度处的实例对象 MovieClip.getIns
收藏 0 赞 0 分享
查看更多