常用字符集编码概要

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附录B常用字符集编码概要

常用字符集编码概要特性

⏹ASCII

ASCII码是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x20和0x7F共33个控制字符。只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。早期很多邮件系统也只支持ASCII编码,为了传输中文邮件必须使用BASE64或者其他编码方式。

⏹ISO-8859-1

ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。ISO-8859-1收录的字符除ASCII 收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧元符号出现的比较晚,没有被收录在ISO-8859-1当中。因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性。ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。

⏹GB2312-80

GB2312是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。区位码中01-09区是符号、数字区,16-87区是汉字区,10-15和88-94是未定义的空白区。GB2312字符集中除常用简体汉字字符外还包括希腊字母、日文平假名及片假名字母、俄语西里尔字母等字符,未收录繁体中文汉字和一些生僻字。可以用繁体汉字测试某些系统是不是只支持GB2312编码。

GB2312-80(1980年)是国内计算机汉字信息技术发展初始阶段制定的,其中包含了大部分常用的一、二级汉字,和9 区的符号。一共收录了7445个字符,包括6763个汉字和682个其它符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe;汉字从0xb0a1 开始,结束于0xf7fe。

⏹GBK

GBK编码是GB2312编码的超集,向下完全兼容GB2312,同时GBK收录了Unicode基本多文种平面中的所有CJK汉字。同 GB2312一样,GBK也支持希腊字母、日文假名字母、俄语字母等字符,但不支持韩语中的表音字符(非汉字字符)。GBK还收录了GB2312不包含的汉字部首符号、竖排标点符号等字符。GBK的整体编码范围是为0x8140-0xFEFE,不包括低字节是0×7F的组合。高字节范围是0×81-0xFE,低字节范围是0x40-7E和0x80-0xFE。

GBK所有字符都可以一对一映射到Unicode 2.0,也就是说JA V A实际上提供了GBK 字符集的支持。这是现阶段Windows 和其它一些中文操作系统的缺省字符集,但并不是所有的国际化软件都支持该字符集。

中文Windows默认采用的是GBK编码显示,每个汉字对应两个字节,区分中文编码的方法是高字节的最高位不为0(符号位,1负数;0正数)。

⏹GB18030-2000(GBK2K)

(2000年)在GBK 的基础上进一步扩展了汉字,增加了藏、蒙等少数民族的字形。该标准收录了27484个汉字,GB K2K 从根本上解决了字位不够,字形不足的问题。

GBK和GB2312是单字节和双字节混合的变长编码,英文1位,中文2位。GB18030编码是变长编码,有单字节、双字节和四字节三种方式

⏹UCS

UNICODE编码(Universal Multiple-Octet Coded Character Set",简称为UCS),兼容英文字符和其它民族的字符编码,所以,目前,大多数国际性的软件内部均采用UNICODE编码,在软件运行时,它获得本地支持系统(多数时间是操作系统)默认支持的编码格式,然后再将软件内部的UNICODE转化为本地系统默认支持的格式显示出来。

UCS-2、UTF-16是UCS字符集(或者说是Unicode字符集)实际应用中的具体编码方式。

⏹UTF-8,UTF-16,UTF-32

Unicode的最初目标,是用1个16位的编码来为超过65000字符提供映射。但这还不够,它不能覆盖全部历史上的文字,也不能解决传输的问题,尤其在那些基于网络的应用中。因此,Unicode用一些基本的保留字符制定了三套编码方式。它们分别是UTF-8,UTF-16和UTF-32。

UTF-8是8 位UCS 转换格式,编码是字节顺序无关的,变长码。UTF-8是UNICODE的一种变长字符编码,UTF-8用1到6个字节编码UNICODE字符。如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节,而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。这种方式的最大好处,是UTF-8保留了ASCII字符的编码做为它的一部分,例如,在UTF-8和ASCII 中,“A”的编码都是0x41,其缺点长度不可知,物理存储有问题。

UTF-16和UTF-32分别是Unicode的16位和32位编码方式。通常说的Unicode就是指UTF-16。

UTF-16BE是16 位UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序。

UTF-16LE是16 位UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序。

UTF-16是16 位UCS 转换格式,字节顺序由可选的字节顺序标记来标识,定长码。

UCS-2用2个字节来编码字符,两个字节就是16位二进制,2的16次方等于65536,所以UCS-2最多能编码65536个字符。

UCS-4用4个字节来编码字符。

⏹BIG5

BIG5是台湾计算机界实行的汉字编码字符集。它包含了420 个图形符号和13070 个汉字(不包含简化汉字)。编码范围是0x8140-0xFE7E、0x81A1-0xFEFE,其中0xA140-0xA17E、0xA1A1-0xA1FE 是图形符号区,0xA440-0xF97E、0xA4A1-0xF9FE 是汉字区。

⏹编码示例

字符“A”“国”“國”

US-ASCII 41 3f(错误)3f

ISO8859-1 41 3f 3f

GBK 41 b9 fa 87 f8

BIG5 41 3f(错误)b0 ea

UTF-16BE 0041 56 fd 57 0b

UTF-16LE 4100 fd 56 0b 57

UTF-8 41 e5 9b bd e5 9c 8b

短信相关

⏹GSM短信长度为140个8位组(字节)。

⏹对于UCS-2或UTF-16,每个字符为2个字节,故最长可传输70个UCS2字符(如中文)

⏹对于Alphabet编码(英文即以此方式传输),每个字符为7bits,因此可传输160个字符

⏹看下图的表示:

0)

(70×2×8=160×7)

⏹所以如果全部是半角英文的话,使用Alphabet编码最多可传160个字符;如果是中文,使用UCS-2

或UTF-16最多可传70个汉字。

⏹短信传输一般用UTF-16BE。在GBK编码中有简体的国和繁体的國编码。但这2个字的编码是不一样

相关文档
最新文档