中⽂字符集与字符编码的基础知识
字符是各种⽂字和符号的总称,包括各国家⽂字、标点符号、图形符号、数字等。字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB 18030字符集、Unicode字符集等。计算机要准确的处理各种字符集⽂字,需要进⾏字符编码,以便计算机能够识别和存储各种⽂字。
中⽂⽂字数⽬⼤,⽽且还分为简体中⽂和繁体中⽂两种不同书写规则的⽂字,⽽计算机最初是按英语单字节字符设计的,因此,对中⽂字符进⾏编码,是中⽂信息交流的技术基础。本⽂将按照字符集的时间顺序讨论⼏种典型的字符集,选取⼏种代表性的中⽂字符集,研究历史由来、特点、技术特征。
ASCII 字符集
1.名称的由来
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于罗马字母表的⼀套电脑编码系统。
2.特点
它主要⽤于显⽰现代英语和其他西欧语⾔。它是现今最通⽤的单字节编码系统,并等同于国际标准ISO 646。
3.包含内容
控制字符:回车键、退格、换⾏键等。
可显⽰字符:英⽂⼤⼩写字符、阿拉伯数字和西⽂符号
4.技术特征
7位(bits)表⽰⼀个字符,共128字符
5.ASCII扩展字符集
7位编码的字符集只能⽀持128个字符,为了表⽰更多的欧洲常⽤字符对ASCII进⾏了扩展,ASCII扩展字符集使⽤8位(bits)表⽰⼀个字符,共256字符。
ASCII扩展字符集⽐ASCII字符集扩充出来的符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号。
GB2312 字符集
1.名称的由来
GB2312⼜称为GB2312-80字符集,全称为《信息交换⽤汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5⽉1⽇实施。
2.特点
GB2312是中国国家标准的简体中⽂字符集。它所收录的汉字已经覆盖99.75%的使⽤频率,基本满⾜了汉字的计算机处理需要。在中国⼤陆和新加坡获⼴泛使⽤。
3.包含内容
GB2312收录简化汉字及⼀般符号、序号、数字、拉丁字母、⽇⽂假名、希腊字母、俄⽂字母、汉语拼⾳符号、汉语注⾳字母,共 7445个图形字符。其中包括6763个汉字,其中⼀级汉字3755个,⼆级汉字3008个;包括拉丁字母、希腊字母、⽇⽂平假名及⽚假名字母、俄语西⾥尔字母在内的682个全⾓字符。
4.技术特征
(1)分区表⽰:
GB2312中对所收汉字进⾏了“分区”处理,每区含有94个汉字/符号。这种表⽰⽅式也称为区位码。
各区包含的字符如下:01-09区为特殊符号;16-55区为⼀级汉字,按拼⾳排序;56-87区为⼆级汉字,按部⾸/笔画排序;10-15区及88-94区则未有编码。
(2)双字节表⽰
两个字节中前⾯的字节为第⼀字节,后⾯的字节为第⼆字节。习惯上称第⼀字节为“⾼字节” ,⽽称第⼆字节为“低字节”。
“⾼位字节”使⽤了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使⽤了0xA1-0xFE(把01-94加上0xA0)。
5.编码举例
以GB2312字符集的第⼀个汉字“啊”字为例,它的区号16,位号01,则区位码是1601,在⼤多数计算机程序中,⾼字节和低字节分别加0xA0得到程序的汉字处理编码0xB0A1。计算公式是:0xB0=0xA0+16, 0xA1=0xA0+1。
BIG5 字符集
1.名称的由来
⼜称⼤五码或五⼤码,1984年由台湾财团法⼈信息⼯业策进会和五间软件公司宏碁 (Acer)、神通 (MiTAC)、佳佳、零壹 (Zero One)、⼤众 (FIC)创⽴,故称⼤五码。
Big5码的产⽣,是因为当时台湾不同⼚商各⾃推出不同的编码,如倚天码、IBM PS55、王安码等,彼此不能兼容;另⼀⽅⾯,台湾政府当时尚未推出官⽅的汉字编码,⽽中国⼤陆的GB2312编码亦未有收录繁体中⽂字。
2.特点
Big5字符集共收录13,053个中⽂字,该字符集在使⽤。耐⼈寻味的是该字符集重复地收录了两个相同的字:“兀”(0xA461及0xC94A)、“嗀”(0xDCD1及0xDDFC)。
3.字符编码⽅法
java语言使用的字符码集是Big5码使⽤了双字节储存⽅法,以两个字节来编码⼀个字。第⼀个字节称为“⾼位字节”,第⼆个字节称为“低位字节”。⾼位字节的编码范围0xA1-0xF9,低位字节的编码范围0x40-0x7E及0xA1-0xFE。
各编码范围对应的字符类型如下:0xA140-0xA3BF为标点符号、希腊字母及特殊符号,另外于0xA259-0xA261,存放了双⾳节度量衡单位⽤字:兙兛兞兝兡兣嗧瓩糎;0xA440-0xC67E为常⽤汉字,先按笔划再按部⾸排序;0xC940-0xF9D5为次常⽤汉字,亦是先按笔划再按部⾸排序。
4.Big5 的局限性
尽管Big5码内包含⼀万多个字符,但是没有考虑社会上流通的⼈名、地名⽤字、⽅⾔⽤字、化学及⽣物科等⽤字,没有包含⽇⽂平假名及⽚假名字母。
例如台湾视“着”为“著”的异体字,故没有收录“着”字。康熙字典中的⼀些部⾸⽤字(如“⼇”、“⽧”、“⾡”、“⽨”等)、常见的⼈名⽤字(如“堃”、“煊”、“栢”、“喆”等) 也没有收录到Big5之中。
GB18030 字符集
1.名称的由来
GB 18030的全称是GB18030-2000《信息交换⽤汉字编码字符集基本集的扩充》,是我国政府于2000年3⽉17⽇发布的新的汉字编码国家标准,2001年8⽉31⽇后在中国市场上发布的软件必须符合本标准
2.特点
GB 18030字符集标准的出台经过⼴泛参与和论证,来⾃国内外知名信息技术⾏业的公司,信息产业部和原国家质量技术监督局联合实施。
GB 18030字符集标准解决汉字、⽇⽂假名、朝鲜语和中国少数民族⽂字组成的⼤字符集计算机编码问题。该标准的字符总编码空间超过150万个编码位,收录了27484个汉字,覆盖中⽂、⽇⽂、朝鲜语和中国少数民族⽂字。满⾜中国⼤陆、⾹港、台湾、⽇本和韩国等东亚地区信息交换多⽂种、⼤字量、多⽤途、统⼀编码格式的要求。并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统⼀汉字扩展A”的内容。并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。
3.编码⽅法
GB 18030标准采⽤单字节、双字节和四字节三种⽅式对字符编码。单字节部分使⽤0×00⾄0×7F码(对应于ASCII码的相应码)。双字节部分,⾸字节码从0×81⾄0×FE,尾字节码位分别是0×40⾄0×7E和0×80⾄0×FE。四字节部分采⽤GB/T 11383未采⽤的0×30到0×39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0×81308130到0×FE39FE39。其中第⼀、三个字节编码码位均为0×81⾄0×FE,第⼆、四个字节编码码位均为0×30⾄0×39。
4.包含的内容
双字节部分收录内容主要包括GB13000.1全部CJK汉字20902个、有关标点符号、表意⽂字描述符13个、增补的汉字和部⾸/构件80个、双字节编码的欧元符号等。 四字节部分收录了上述双字节字符之外的,包括CJK统⼀汉字扩充A在内的GB 13000.1中的全部字符。
Unicode字符集
1.名称的由来
Unicode字符集编码是Universal Multiple-Octet Coded Character Set 通⽤多⼋位编码字符集的简称,是由⼀个名为 Unicode 学术学会(Unicode Consortium)的机构制订的字符编码系统,⽀持现今世界各种不同语⾔的书⾯⽂本的交换、处理及显⽰。该编码于1990年开始研发,1994年正式公布,最新版本是2005年3⽉31⽇的Unicode 4.1.0。
2.特征
Unicode是⼀种在计算机上使⽤的字符编码。它为每种语⾔中的每个字符设定了统⼀并且唯⼀的⼆进制编码,以满⾜跨语⾔、跨平台进⾏⽂本转换、处理的要求。
3.编码⽅法
Unicode 标准始终使⽤⼗六进制数字,⽽且在书写时在前⾯加上前缀“U+”,例如字母“A”的编码为 004116 和字符“?”的编码为
20AC16。所以“A”的编码书写为“U+0041”。
4.UTF-8 编码
UTF-8是Unicode的其中⼀个使⽤⽅式。 UTF是 Unicode Translation Format,即把Unicode转做某种格式的意思。
UTF-8便于不同的计算机之间使⽤⽹络传输不同语⾔和编码的⽂字,使得双字节的Unicode能够在现存的处理单字节的系统上正确传输。
UTF-8使⽤可变长度字节来储存 Unicode字符,例如ASCII字母继续使⽤1字节储存,重⾳⽂字、希腊字母或西⾥尔字母等使⽤2字节来储存,⽽常⽤的汉字就要使⽤3字节。辅助平⾯字符则使⽤4字节。
5.UTF-16 和 UTF-32 编码
UTF-32、UTF-16 和 UTF-8 是 Unicode 标准的编码字符集的字符编码⽅案,UTF-16 使⽤⼀个或两个未分配的 16 位代码单元的序列对Unicode 代码点进⾏编码;UTF-32 即将每⼀个 Unicode 代码点表⽰为相同值的 32 位整数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论