首页 理论教育 软件工程专业导论-汉字编码与Unicode

软件工程专业导论-汉字编码与Unicode

时间:2023-10-23 理论教育 版权反馈
【摘要】:实现汉字的远距离传输,首先需要对汉字进行电报编码。1980年,中国颁布了汉字编码的国家标准GB 2312—1980《信息交换用汉字编码字符集》,简称国标码。GB 2312—1980给出了6 763个汉字和682个图形字符的编码。逐步发展为4字节的编码UCS-4。国际标准化组织,首先提出的ISO 10646标准定义了一个32位的编码形式,称为UCS-4。UCS-4足以用来表示所有的Unicode的字码空间,几乎可以囊括世界上所有文字。

软件工程专业导论-汉字编码与Unicode

英语只有26个字母,加上常用的标点符号,可以用5位的Baudot码或7位的ASCII码就足够了。汉字的字符集很大。实现汉字的远距离传输,首先需要对汉字进行电报编码。

汉斯·谢勒俄普(Hans Carl Frederik Christian Schjellerup),于1869年,提议起草中国电报词典,规则是每一个汉字设定一个4位数码。汉斯·谢勒俄普按《康熙字典》编排汉字,每一个汉字对应一个从0001至9999的4位数。例如,汉字“一”对应的4位数是“0001”,“丁”对应的4位数是“0002”,“七”对应的4位数是“0003”,以此类推。发报时,一个汉字转换为对应的4位数,用摩尔斯电码发出,接收到的电码经解码得到对应的4位数,再翻译为汉字。后续对电报码进行了改进,仍然是4位(十进制)数编码,图5-1是20世纪70年代的一份电报。

图5-1 汉字的电报与编码

随着计算机技术的发展,要让计算机能够存储和输入输出汉字,就需要对汉字进行计算机编码。1980年,中国颁布了汉字编码的国家标准GB 2312—1980《信息交换用汉字编码字符集》,简称国标码。GB 2312—1980给出了6 763个汉字和682个图形字符的编码。

国标码是一个4位十六进制数。其编码原则为汉字用两个字节表示,每个字节用7位码(高位为0)。同时给出了一个4位的十进制数编码,称为区位码,前两位称为区码,后两位称为位码。例如,“保”字,用区位码,输入为“1703”,用(拼音)全拼,输入码为“BAO”。(www.xing528.com)

20世纪80年代PC上实现了汉字的输入输出,为了区分汉字编码与ASCII码,把每个字节的高位设置为1,表示是汉字。这样一个汉字的两个字节的最高位都必须是1,或者说,连续两个高位为1的字节组成一个汉字。

文字编辑中,由于键盘的del键或退格键是一个控制符,这样,就会存在每次做del键和退格键操作时,必须判断是汉字编码还是ASCII码,如果是汉字编码就必须删除两个字节,否则,只删除一个字节,则会出现汉字编码找不到对应的汉字点阵,内存或显示器上出现乱码的现像。

随着计算机内存的不断扩大,国际组织接受了由中、日、韩三国提出的C-J-K(Chinese-Japanese-Korea)大字符集编码方案,包括三个国家常用的字符,用四个字节编码。逐步发展为4字节的编码UCS-4。

国际标准化组织,首先提出的ISO 10646标准定义了一个32位的编码形式,称为UCS-4。使用通用字符集(UCS)的每一个字符,会在十六进制的0到7FFFFFFF字码空间中,表示成一个32位的码值。

UCS-4足以用来表示所有的Unicode的字码空间,几乎可以囊括世界上所有文字。显然,在大多数场合下,保留如此大的字码空间却只为对应很小的字符编码集显得很浪费,所以提出了新UTF-32的编码。UTF-32 是一个UCS-4 的子集,使用32位的码值,只使用0到10FFFF的字码空间。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈