汉字编码技術與標準

近來在學習字體相關技術,收集整理一些學習筆記,特記錄如下:

一、二进制編碼和ASCII編碼

       发明世界上第一台电子计算机的美国人,在1967年將英文字母和一些英文符号安排成第一批被编码能够在电子计算机的屏幕上显示的字符。因为一开始要编码的字符并没有多少,一些不可见的控制字符和可见的字符加一起才有128个,虽然这是2的7次方,仅仅需要7位久就能完成这些字符的编码工作。但是由于一般计算机内存的寻址方式为2的偶数次方较为方便,于是人们用一字节(8位)的低7位来编码这些字符,最高位为0,而这128个字符被称为标准ASCII码(ASCII的全称为American Standard Code for Information Interchange,直译为:美国信息交换标准代码),或者叫做基础ASCII码。

        后来又有一部分字符需要编码,在1981年人们又凑了128个字符,最高位为1,利用一字节剩下的7位来编码这128个字符。这样一来新的编码方式便兼容了之前的标准ASCII,使得之前用便准ASCII编码的数据还可以继续在计算机屏幕上正常显示。而这部分新的128个字符被对应地称为扩展ASCII码。

二、JIS基本漢字標準

        1978年,日本工业规格协会制定了JIS C 6226,即 7ビット及び8ビットの2バイト情報交換用符号化漢字集合(直译为:七位元及八位元之双字节资讯交换用符号化汉字集,简称JIS基本汉字)。这也是全世界最早的汉字编码字符集。

        JIS基本汉字收录了6879个图形字符,包括6355个汉字和524个非汉字图形符号,采用了行号列号和区位结合的方式定位,共分为94区,而每区编入94个字符(但实际上为了分类方便,并不是每个区都是满编94个字符)。习惯上称第一个字节为高字节,第二个字节为低字节。高字节表示该字符所在的区,低字节由行列号确定该字符在区内的位。01区-09区为非汉字图形字符,16区-84区为汉字。其中主要各区编码内容如下:

01区-02区 特殊文字共147个字符
03区 阿拉伯数字以及英文字母大小写共62个字符
04区 平假名共83个字符
05区 片假名共86个字符
06区 希腊字母大小写共48字符
07区 西里尔字母大小写共66个字符
08区 制表符共32个字符
16区-47区 一级汉字共2965个字符
48区-84区 二级汉字共3390个字符
85区-94区 私人造字区
注:一级汉字和二级汉字的划分依据是使用频率,将使用频率高的汉字划分为一级汉字。

        为什么是94个区呢?94也不是2的n次幂的结果啊?

        这个问题问得好,很多人刚接触汉字编码时都对这个数字一头雾水。但是其实这个数字也是在尽可能的范围内取得最大值。还记得前文ASCII中提到的控制字符吗?ASCII的前32个字符就是控制字符,实际上第128个字符也是控制码(DEL,删除),而区位又是从01开始计数,所以128-32-1-1=94。

三、GB2312標準

        我國於1981年制定了一套汉字编码标准。这套编码标准称为GB2312,即中华人民共和国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,通常简称为GB。GB2312为中国大陆地区的强制标准,亦被使用于新加坡。(香港特区、澳门特区以及台湾省使用的是另一种名为Big5码的编码标准)

GB2312收录了汉字6763个(其中一级汉字3755个,二级汉字3008个),除此之外还收录了包括英文字母、希腊字母、日文假名、西里尔字母在内的682个字符,共计7445个字符。同JIS基本汉字一样,GB2312也划分了94个区,每个区94个位。但二者各个区的内容略有出入:

01区-09区 特殊符号、数字等682个全角字符(全角字符与半角字符的区别为全角字符占用两个字节,而半角字符只占用一个字节)
10区-15区 空区,待扩展
16区-55区 一级汉字共3755个字符(按拼音排序)
56区-87区 二级汉字共3008个字符(按部首/笔画排序)
88区-94区 空区,待扩展

而国标码和基本ASCII码冲突,于是把最高位置为1,得到对应的机内码,简称内码。内码正是计算机内存单元中真正储存的编码。

随着国内少数民族对计算机的使用需求和GB2312对汉字收录过少的局限性,我国于2000年在GB2312的基础上扩充,制定了GB18030标准。在GB2312的基础上,增加了4字节编码的方式,涵盖了中文汉字,日文假名,朝鲜谚文以及其他中国少数民族的文字。

四、CJK編碼標準

        为了交流方便,汉字文化圈的中国、日本、朝鲜、韩国希望能一统一的标准处理汉字,于是在国际社会的共同努力下,于1993年正式制定了收录字符20902个的中日韩统一表意文字,简称CJK编码。其中C代表中文、J代表日文、K代表谚文。经过多年来的不断修订,现已收录包括古籍生僻字、少数民族文字、朝鲜国字(又称韩国制汉字)、越南喃字和儒字、琉球汉字、人名生僻字以及科技文献生僻字等在内的87888个字符,并被广泛使用于中国、日本、朝鲜、韩国、越南、马来西亚等国。

五、常見的漢字字符集編碼標準

        GB2312编码:1981年5月1日实施的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。自2017年3月23日起,该标准转化为推荐性标准:GB/T2312-1980,不再强制执行。

        BIG5编码:台湾地区、香港及澳門特區繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。

        GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。

        GB18030编码:2000年3月17日发布的汉字编码国家标准,是对GBK编码的扩充,覆盖中文、日文、朝鲜语和中国少数民族文字,其中收录27484个汉字。GB18030字符集采用单字节、双字节和四字节三种方式对字符编码。兼容GBK和GB2312字符集。2005年11月8日,发布了修订版本:GB18030-2005字符集,在GB18030-2000的基础上,增加了CJK Ext-B的42711个汉字,共计70244个汉字。2022年7月19日,发布了第二次修订版本:GB18030-2022,收录汉字总数八万余个。完全兼容2005标准,并在其基础上增加扩展C、D、E、F区1.7万多字,将于2023年8月1日正式实施。

        Unicode编码:(也稱 ISO/IEC 10646 ),Unicode采用四个字节为每个字符编码。这是全球可以共享的编码字符集,两者相互兼融,涵盖了世界上主要语文的字符,其中包括简繁体汉字,计有:CJK统一汉字编码20992个、CJK Ext-A 编码 6582个、CJK Ext-B 编码 36862个、CJK Ext-C 编码 4160个、 CJK Ext-D 编码 222个,共计74686个汉字。SimSun-ExtB(宋体)、MingLiU-ExtB(细明体)能显示全部Ext-B汉字。

        UTF-8和UTF-16编码:Unicode编码的转换格式,可变长编码,相对于Unicode更节省空间。UTF-16的字节序有大尾序(big-endian)和小尾序(little-endian)之别。

六、GB18030-2022 认证检测产品覆盖类型

(網上轉帖,未經驗證,不作廣告)

操作系统类:统信UOS完成全球操作系统领域首个GB 18030—2022《信息技术 中文编码字符集》标准适配,统信UOS桌面操作系统 V20 产品已通过新版标准的实现级别 3,这是该标准的最高实现级别。

openKylin 系统内置国标宋体系列字体,新增 GB 18030-2022 内码输入法,完成对新国标 GB 18030-2022 的全面支持。

数据库系统:达梦数据库支持两种常用的字符集 GB18030 和 UTF-8。

输入法系统:搜狗输入法提供符合新国标GB18030-2022的汉字输入能力,简单交互,快速输出,满足不同行业生僻字输入需求。

字体类: 阿里巴巴普惠体3.0适配支持新国标(GB18030-2022),扩容开发生僻字字库,其中覆盖绝大部分人名、地名、方言、古籍中的生僻字,为全球免费正版商用字体。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值