中文信息处理技术专栏

中文信息处理技术专栏


首页  中文信息处理技术专栏

  • ISO10646-1:1993/Unicode、GBK与BIG 5
  • 时间: 2017-06-08    阅读数: 15

  • GBK

    GBK全称《汉字内码扩展规范》,英文名称为Chinese Internal Code Specification,由中华人民共和国全国信息技术标准化技术委员会制定于199512月。GB 即“国标”,K 是“扩展”的第一个汉字汉语拼音第一个字母。

    GBK编码上与GB2312-80兼容,字汇上与ISO10646兼容。实质上,它是一个用于从GB2312-80ISO10646过渡的产物。

    GB2312-80一样,GBK 也采用了双字节表示,总体编码范围是8140H-FEFEH,首字节在 81H-FEH 之间,尾字节在 40H-FEH 之间,剔除了xx7FH 一条线。GBK总计有23940个码位,共收录了21886个汉字和图形符号,其中汉字(包括部首和构件)21003个,图形符号 883个。

    GBK的编码结构如表1所示。汉字的内码分布在GBK/2B0A1H- F7FEH)、GBK/38140H-A0FEH)、GBK/4AA40H-FEA0H)中,共有21003个。

    Big-5

    Big-5码是一个通行于台湾、香港地区的繁体汉字编码方案,它被俗称为“大五码”或“五大码”。1984年,台湾13家厂商试图合力开发“文字处理”、“数据库”、“电子表格”、“通讯”和“绘图”五大套装软件。但开发出来的软件未获成功,而为开发五大套装软件设计的Big-5码却成为了业界的主流,后来发展成为了繁体中文使用地区的标准。

    Big-5码共收录汉字13053个,它包含5401个常用字和7652个次常用字两部分。常用字包括台湾教育管理部门颁布的《常用汉字标准字体表》中的全部汉字4808个,台湾中小学教科书常用字587个,异体字6个。次常用字包括台湾教育管理部门颁布的《次常用汉字标准字体表》的全部汉字6341个和《罕用汉字标准字体表》中使用频率较高的1311个汉字。

    Big-5同样是一个双字节编码,高位字节在81HFEH之间,低位字节使用了40H-7EH,以及A1HFEH

     1 GBK的编码结构

    类别简称

    范围(16进制)

    码位

    字符

    字符与备注

    符号标准区

    GBK/1

    A1A1-A9FE

    846

    717

    图形符号,GB-2312为主

    GBK/5

    A840-A9A0

    192

    166

    图形符号,BIG-5和结构符

    小计

    1038

    883

    图形符号

    汉字标准区

    GBK/2

    B0A1-F7FE

    6768

    6763

    汉字,GB-2312

    GBK/3

    8140-A0FE

    6080

    6080

    汉字,GB-13000

    GBK/4

    AA40-FEA0

    8160

    8160

    汉字,GB-13000

    小计

    21008

    21003

    汉字

    自定义区

    1

    AAA1-AFFF

    564



    2

    F8A1-FEFE

    658



    3

    A140-A7A0

    672


    限制使用

    小计

    1894



    总计

    23940

    21886


    需要注意的是,应该是由于工作中的疏忽,Big-5中重复收录了两个相同的字。“兀”有两个编码A461H C94AH,“嗀”也有两个编码DCD1HDDFCH。因为在文件和互联网上检索字符往往需要作字符内码的精确匹配,一个字有多个内码会导致查询结果的查全率很差。

    ISO10646-1:1993/Unicode中汉字分布

    ISO10646-1:1993/UnicodeBMP平面中从4E00H9FFFH是中日韩认同表意文字区,合计收录了20902个中日韩汉字。Unicode与文本文件

    GB2312-80中每个汉字的机内码由于最高字节一定为1,可以有效地和ASCII区分开来。但Unicode内码的机内码病没有类似的明显区分方法,因此如果将一段汉字以Unicode内码存储到文本文件中,将来在读取的时候很有可能误将其中的数据按照ANSI Code或者ASCII进行解析,这样同样可能会导致“乱码”。

    Windows的文本文件中是通过添加特殊标记文件头来解决该问题。Windows操作系统附带的记事本程序在存储Unicode文本文件时,会在文件最前面存储了一个FFFEH标记,该标记占用了两个字节,接着在后面存储正常文本每个字符的Unicode内码。由于FFFEH码位在ANSI CodeUnicode中都没有被使用,因此不存在二义性,这是一种很简单有效的区分UnicodeANSI Code文本文件的方法。


地址:苏州市十梓街1号 苏州大学纵横研究所联系电话:0512-65243192电子邮箱:ckc@suda.edu.cn

Copyright © 苏州大学纵横汉字信息技术研究所 2017