欢迎来到天天文库
浏览记录
ID:8914051
大小:23.00 KB
页数:6页
时间:2018-04-12
《字符编码方式介绍及编码方式测试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、字符编码方式介绍及编码方式测试第一部分编码方式介绍一、ASCII编码: 美国标准信息交换标准码(AmericanStandardCodeforInformationInterchange,ASCII) 在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态。一个字节(byte)共由八个二进制位来组成,共有256种状态,从0000000到11111111。 阿拉伯数字、英文字母、标点符号等这些字符,怎么定义才能让计算机识别呢?因为计算机只识别二进制位0和1,所以以上这些字符就必须与二进制位(0和
2、1)建立关系,才能让计算机识别。 60年代初,计算机界制定了一套统一的字符编码,来表示字符与二进制位之间的关系。这种统一的字符编码就叫做ASCII编码。ASCII码一共规定了128个字符的编码,比如空格是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。 在英语国家,128个ASCII编码足以表达所有字符,但其它非英语国家,字符不是由英文字符组成,这样就需要增加编码以表达这些字符,对于超过128个字符的编码
3、被称为非ASCII编码。比如:在中国,我们用简体中文,字符编码方式为GB2312。二、Unicode编码: 看到上面的介绍后,我们了解了最早编码是ASCII码。它只用7个二进制位来表示,由于那个时期生产的大多数计算机使用8位大小的字节,因此用户不仅可以存放所有可能的ASCII字符,而且有整整一位空余下来。如果你技艺高超,可以将该位用做自己离奇的目的:WordStar中那个发暗的灯泡实际上设置这个高位,以指示一个单词中的最后一个字母,同时这也宣示了WordStar只能用于英语文本。 由于字节有多达8位的空间,因此许多人在想:“呀!我们可以把1
4、28~255之间的编码用做个人的应用目的。”问题在于,同时产生这种想法的人相当多,而且在128~255之间的各个位置上应该存放什么这一问题上,真是仁者见仁智者见智。事实上,只要人们开始在美国以外的地方购买计算机,那么各种各样的不同OEM字符集都会进入规划设计行列,并且各人都会根据自己的需要使用高位的128个字符。如此一来,甚至在同语种的文档之间就不容易实现互换。ASCII可被扩展,最优秀的扩展方案是ISO8859-1,通常称之为Latin-1。Latin-1包括了足够的附加字符集来写基本的西欧语言。 最后,这个人参与的OEM终于以ANSI标
5、准的形式形成文件。在ANSI标准中,每个人都认同如何使用低端的128个编码,这与ASCII相当一致。不过,根据所在国籍的不同,处理编码128以上的字符有许多不同的方式。这些不同的系统称为代码页。 同时,甚至更为令人头疼的事情正在逐步上演,亚洲国家的字符表有成千上万个字符,这样的字符表是用8位二进制无法表示的。该问题的解决通常有赖于称为DBCS(doublebytecharacterset,双字节字符集)的繁杂字符系统。 不过,仍然需要指出一点,多数人还是姑且认为一个字节就是一个字符,以及一个字符就是8个二进制位,并且只要确保不将字符串从一台计
6、算机移植到另一台计算机,或者说一种以上的语言,那么这几乎总是可以凑合。当然,只要一进入Internet,从一台计算机向另一台计算机移植字符串就成为家常便饭了,而各种复杂状况也随之呈现出来。令人欣慰的是,Unicode随即问世了。 Unicode字符集(简称为UCS),国际标准组织于1984年4月成立ISO/IECJTC1/SC2/WG2工作组,针对各国文字、符号进行统一性编码。1991年美国跨国公司成立UnicodeConsortium,并于1991年10月与WG2达成协议,采用同一编码字集。目前Unicode是采用16位编码体系,其字符集内
7、容与ISO10646的BMP(BasicMultilingualPlane)相同。Unicode于1992年6月通过DIS(DrafInternationalStandard),目前版本V2.0于1996公布,内容包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400个,保留20249个,共计65534个。Unicode编码后的大小是一样的.例如一个英文字母"a"和 一个汉字"好",编码后都是占用的空间大小是一样的,都是两个字节! Unicode可以用来表示所有语言的字符,而且是定长双字节(也有四字节的)编码,包括英文字母
8、在内。所以可以说它是不兼容iso8859-1编码的,也不兼容任何编码。不过,相对于iso8859-1编码来说,uniocode编码只是在
此文档下载收益归作者所有