GB中文编码发展过程:GB2312-->GBK-->GB18030
GB2312字符集
作用:国家简体中文字符集,兼容ASCII。
位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。
范围:高字节从A1到F7, 低字节从A1到FE。将高字节和低字节分别加上0XA0即可得到编码。
GBK字符集
作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。
位数:使用2个字节表示,可表示21886个字符。
范围:高字节从81到FE,低字节从40到FE。
GB18030字符集
作用:它解决了中文、日文、朝鲜语等的编码,兼容GBK。
位数:它采用变字节表示(1 ASCII,2,4字节)。可表示27484个文字。
范围:1字节从00到7F; 2字节高字节从81到FE,低字节从40到7E和80到FE;4字节第一三字节从81到FE,第二四字节从30到39。
GB编码方式:分一字节编码,即ASCII和双字节编码。
以GBK为例:
字符有一字节和双字节编码,00
–7F
范围内是一位,和ASCII保持一致,此范围内严格上说有96个文字和32个控制符号。
之后的双字节中,前一字节是双字节的第一位。总体上说第一字节的范围是81
–FE
(也就是不含80
和FF
),第二字节的一部分领域在40
–FE
,其他领域在80
–FE
。
具体来说,定义的是下列字节:
范围 | 第1字节 | 第2字节 | 编码数 | 字数 |
---|---|---|---|---|
水准 GBK/1 | A1 –A9 | A1 –FE | 846 | 717 |
水准 GBK/2 | B0 –F7 | A1 –FE | 6,768 | 6,763 |
水准 GBK/3 | 81 –A0 | 40 –FE (7F 除外) | 6,080 | 6,080 |
水准 GBK/4 | AA –FE | 40 –A0 (7F 除外) | 8,160 | 8,160 |
水准 GBK/5 | A8 –A9 | 40 –A0 (7F 除外) | 192 | 166 |
用户定义 | AA –AF | A1 –FE | 564 | |
用户定义 | F8 –FE | A1 –FE | 658 | |
用户定义 | A1 –A7 | 40 –A0 (7F 除外) | 672 | |
合计: | 23,940 | 21,886 |
双字节符号可以表达的64K空间如下图所示。绿色和黄色区域是GBK的编码,红色是用户定义区域。没有颜色区域是不正确的代码组合。