`
ansjsun
  • 浏览: 203026 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

大话字符编码发展史

阅读更多


ASCII码
    ASCII码于1968年提出,用于在不同计算机硬件和软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII码。比较EBCDIC。其中95个字符可以显示。另外33个不可以显示。 标准ASCII码为7位,扩充为8位。 
    美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案,最多可以给256个字符

    从描述可以看出(ASCII码)表示 ,只是对西文字符的一个集合. [a-z][A-Z] ,其中包括95个可见字符.和33个不可见字符. 不可见字符如 “\t:9:,”\n:10”,”\r:13” 可见字符如 “A: 65”,”0:48”

以A为例 其 字符编码表 内容如下:
A	65	41
65就是A的ASCII码的值.41代表65的16进制结果.




GB2312编码

但是伟大的中国人来了.拿汉语来说.比较常见的新华字典中出现的汉字就有10000多个.
1990年出版的《辞海》有14872个汉字;1716年编撰的《康熙字典》有47035个汉字;郭沫若生前曾根据日本朋友的估计,我国大约有60000多个 汉字.

从这里可以看出以现在的编码形式一个char可以表示65535个数字..连中国的汉字都放下也刚刚好.所以有些生僻字.电脑打不出来是情有可原.罪有可赦的呵呵.

于是聪明的我们或者他们.
中国国家标准总局发布了一系列的汉字字符集国家标准编码,统称为GB码.(GB是国标的意思.很土吧.呵呵)

最有影响的是于1980年发布的《信息交换用汉字编码字符集 基本集》,标准号为GB 2312-1980.

也就是我们现在常用的GB2312.

GB 2312是一个简体中文字符集,由6763个常用汉字和682个全角的非汉字字符组成。其中汉字根据使用的频率分为两级。一级汉字3755个,二级汉字3008个。

由于字符数量比较大,GB2312采用了二维矩阵编码法对所有字符进行编码。首先构造一个94行94列的方阵,对每一行称为一个“区”,每一列称为一个“位”,然后将所有字符依照下表的规律填写到方阵中。这样所有的字符在方阵中都有一个唯一的位置,这个位置可以用区号、位号合成表示,称为字符的区位码。如第一个汉字“啊”出现在第16区的第1位上,其区位码为1601。因为区位码同字符的位置是完全对应的,因此区位码同字符之间也是一一对应的。这样所有的字符都可通过其区位码转换为数字编码信息。GB2312字符的排列分布情况见表1-4。

 

  表1-4 GB2312 字符编码分布表

  

分区范围 符号类型
第01区 中文标点、数学符号以及一些特殊字符
第02区 各种各样的数学序号
第03区 全角西文字符
第04区 日文平假名
第05区 日文片假名
第06区 希腊字母表
第07区 俄文字母表
第08区 中文拼音字母表
第09区 制表符号
第10-15区 无字符
第16-55区 一级汉字(以拼音字母排序)
第56-87区 二级汉字(以部首笔画排序)
第88-94区 无字符

 

 

GB2312字符在计算机中存储是以其区位码为基础的,其中汉字的区码和位码分别占一个存储单元,每个汉字占两个存储单元。由于区码和位码的取值范围都是在1-94之间,这样的范围同西文的存储表示冲突。例如汉字‘珀’在GB2312中的区位码为7174,其两字节表示形式为71,74;而两个西文字符‘GJ’的存储码也是71,74。这种冲突将导致在解释编码时到底表示的是一个汉字还是两个西文字符将无法判断。

 

这也就是一些操作byte来进行汉字操作的程序员经常分出半个汉字的原因了!

 

GB2312编码用两个字节(8位2进制)表示一个汉字,所以理论上最多可以表示256×256=65536个汉字。但这种编码方式也仅仅在中国行得通,如果您的网页使用的GB2312编码,那么很多外国人在浏览你的网页时就可能无法正常显示,因为其浏览器不支持GB2312编码。当然,中国人在浏览外国网页(比如日文)时,也会出现乱码或无法打开的情况,因为我们的浏览器没有安装日文的编码表。

 

 

 

Big5编码

 

 

表1-5 Big5字符编码分布表

  

编码范围 符号类别
8140H-A0FEH 保留(用作造字区)
A140H-A3BFH 标点符号、希腊字母及特殊符号
A3C0H-A3FEH 保留(未开放用于造字区)
A440H-C67EH 常用汉字(先按笔划,再按部首排序)
C6A1H-C8FEH 保留(用作造字区)
C940H-F9D5H 非常用汉字(先按笔划,再按部首排序)
F9D6H-FEFEH 保留(用作造字区)

 

Big5编码的分布如表1-5所示,Big5字符主要部分集中在三个段内:标点符号、希腊字母及特殊符号;常用汉字;非常用汉字。其余部分保留给其他厂商支持。

 

 Big5编码推出后,得到了繁体中文软件厂商的广泛支持,在使用繁体汉字的地区迅速普及使用。目前,Big5编码在台湾、香港、澳门及其他海外华人中普遍使用,成为了繁体中文编码的事实标准。在互联网中检索繁体中文网站,所打开的网页中,大多都是通过Big5编码产生的文档。

 

 

 

Unicode编码(统一用3个字节)

应为编码方式各自为政.如果有一种编码,将世界上所有的符号都纳入其中,无论是英文、日文、还是中文等,大家都使用这个编码表,就不会出现编码不匹配现象。每个符号对应一个唯一的编码,乱码问题就不存在了。这就是Unicode编码。

 

 

Unicode当然是一个很大的集合,现在的规模可以容纳100多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,“汉”这个字的Unicode编码是U+6C49。

 

 

Unicode固然统一了编码方式,但是它的效率不高,比如UCS-4(Unicode的标准之一)规定用4个字节存储一个符号,那么每个英文字母前都必然有三个字节是0,这对存储和传输来说都很耗资源。

 

 

 

UTF-8编码(根据编码的长短来自动确定占用空间.)

 

 

为了提高Unicode的编码效率,于是就出现了UTF-8编码。UTF-8可以根据不同的符号自动选择编码的长短。比如英文字母可以只用1个字节就够了。

  UTF-8的编码是这样得出来的,以”汉”这个字为例:

 

  “汉”字的Unicode编码是U+00006C49,然后把U+00006C49通过UTF-8编码器进行编码,最后输出的UTF-8编码是E6B189。

 

 

Base64编码

 

有的电子邮件系统(比如国外信箱)不支持非英文字母(比如汉字)传输,  Base64编码这是历史原因造成的(认为只有美国会使用电子邮件?)。因为一个英文字母使用ASCII编码来存储,占存储器的1个字节(8位),实际上只用了7位2进制来存储,第一位并没有使用,设置为0,所以,这样的系统认为凡是第一位是1的字节都是错误的。而有的编码方案(比如GB2312)不但使用多个字节编码一个字符,并且第一位经常是1,于是邮件系统就把1换成0,这样收到邮件的人就会发现邮件乱码。

 

 

为了能让邮件系统正常的收发信件,就需要把由其他编码存储的符号转换成ASCII码来传输。比如,在一端发送GB2312编码->根据Base64规则->转换成ASCII码,接收端收到ASCII码->根据Base64规则->还原到GB2312编码。

 

分享到:
评论

相关推荐

    大话字符处理 总结

    在探讨各种字符编码方式之前,我们先来了解几个基本概念。计算机内部使用二进制(0和1)表示信息,而字符编码则是将人类可读的文字转换为计算机能理解的形式的过程。不同的字符集和编码方式对应着不同的规则和标准,...

    《大话西方艺术史》读书笔记个人收获五篇.docx

    这本书以轻松幽默的语言,深入浅出地介绍了西方艺术的发展历程,使得原本可能显得遥不可及的艺术史变得亲近而生动。 首先,作者通过独特的标题和总结,如“你才是妈宝男呢,哼!”来讲述拉斐尔·桑西,这种轻松的...

    大话3WDF解包器(也可解大话2的)

    《大话3WDF解包器:深入解析与应用》 在计算机游戏中,资源的管理与存储是一项重要的技术,尤其对于大型多人在线游戏(MMORPG)如“大话西游”系列来说,如何高效地组织和加载游戏资源是至关重要的。本文将详细探讨...

    大话PKG解包工具

    支持AS3的ByteArray序列化对象的AMF格式编码、解码( readObject、writeObject )。 支持AS3的ByteArray的compress、uncompress压缩算法:DEFLATE、LZIB、LZMA。 支持直接修改AS3的ByteArray字节流内编码的对象。 ...

    大话西游鼠标指针

    "大话西游鼠标指针"是一款以经典电影《大话西游》为主题设计的鼠标指针主题包,为用户提供了一种个性化的电脑体验。下面将详细介绍这一主题包的相关知识点。 首先,我们要了解鼠标指针主题。在Windows操作系统中,...

    大话素材目录.zip

    《大话西游2》是一款深受玩家喜爱的网络游戏,其背后有着复杂的系统和丰富的资源管理。在这款游戏中,素材的管理是至关重要的,这直接影响到游戏的视觉效果、音效体验以及整体的游戏性能。"大话素材目录.zip" 是一个...

    大话map tool V1.4

    大话地图提取

    大话西游素材查看工具

    《大话西游素材查看工具详解与应用》 在游戏开发和设计领域,素材管理是一项至关重要的工作。尤其是在中国的网络游戏领域,"大话西游"作为一款深受玩家喜爱的经典游戏,其背后的素材制作与管理自然也备受关注。本文...

    大话云计算【高清】

    大话云计算【高清】

    大话设计模式总结.pdf

    大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf

    大话5G.pdf

    5G技术是继4G之后的下一代移动通信技术,目前正处于快速发展阶段。其与4G相比,不仅在速度上显著提升,还具备了更多...通过阅读《大话5G》等相关资料,相关人员可以更好地了解5G,为未来通信行业的发展和创新奠定基础。

    大话2.0.78版LUA脚本引擎

    针对游戏:大话西游2.0.78版本 软件功能:此版本的lua4脚本引擎 注意如果要编译大话西游2.0.78版,需要相应的将src\lopcodes-78.h 改名 lopcodes.h。 版权属于Copyright (C) 1994-2000 TeCGraf, PUC-Rio. All ...

    大话2和梦幻资源提取工具

    使用资源提取工具时,需要注意的是,不同的游戏资源可能采用不同的编码和格式,因此提取工具需要具备解析这些格式的能力。Glowtools作为专业工具,很可能是针对大话2和梦幻西游特有的文件结构和加密方式进行优化,...

    java版大话西游源码

    《Java版大话西游源码》是一款基于Java编程语言开发的角色扮演游戏(RPG)教程,对于初学者和想要深入理解游戏开发的程序员来说,它提供了丰富的学习资源。这款教程涵盖了多线程技术和自动寻路算法等核心概念,是...

    大话核心网.mobi

    大话核心网.mobi

    大话存储终极版——扫描件

    "终极版"意味着该版本包含了作者多年来的积累和更新,可能涵盖了存储领域的最新发展和技术趋势。 从“扫描件”这个关键词来看,这可能是书的PDF版本,虽然没有实体书的触感,但高清晰度的扫描确保了内容的可读性。...

    大话数据结构 .pptx

    大话数据结构 .pptx

    大话西游WAS导出PNG图片,C#源码!方便导出大话西游WDF资源.非本人原创!

    “大话西游”是一款深受玩家喜爱的网络游戏,其游戏资源通常会采用特定的格式进行压缩和编码,以便于游戏运行时的加载和解码。WDF(可能代表Word Data Format)文件是这种专有格式的一种,它可能包含了游戏中的图像...

    大话企业级Android开发

    01大话企业级Android开发第一篇 02大话企业级Android开发 03大话企业级Android开发开发流程及项目管理 04大话企业级Android开发_Android项目的目录结构、执行流程及其他基础分析 05大话企业级Android开发_MVC讲解及...

    大话移动通信_读书笔记_01.docx

    这为后来的通信技术发展奠定了基础。 2. 贝尔电话的诞生:1875年,亚历山大·格拉汉姆·贝尔发明了电话,声音通过振动金属片产生电流,实现了声能转化为电信号。这一发明开启了现代通信系统架构的序幕。 3. 模拟...

Global site tag (gtag.js) - Google Analytics