GB18030编码采用单字节、双字节、四字节分段编码方案,具体码位见下文。GB18030向下兼容GBK和GB2312编码。
国家标准GB18030《信息技术 中文编码字符集》是我国继GB2312-1980和GB13000-1993之后最重要的汉字编码标准,是我国计算机系统必须遵循的基础性标准之一。 GB18030有三个版本:GB18030-2000、GB18030-2005和GB18030-2022。GB18030-2000是GBK的取代版本,它的主要特点是在GBK基础上增加了CJK统一汉字扩充A的汉字。GB18030-2005的主要特点是在GB18030-2000基础上增加了CJK统一汉字扩充B的汉字。GB18030-2022则主要增加了CJK统一汉字扩充C、D、E、F区的汉字。
GB18030-2000编码标准《信息技术 汉字编码字符集 基本集的扩充》是由信息产业部和国家质量技术监督局在2000年3月17日联合发布的,并且将作为一项国家标准在2001年的1月正式强制执行。GB18030-2000仅规定了常用非汉字符号和27533个汉字(包括部首、部件等)的编码。
GB18030-2005《信息技术 中文编码字符集》是以汉字为主并包含多种我国少数民族文字的超大型中文编码字符集,其中收入汉字70000余个。在GB18030-2000的基础上增加了42711个汉字和多种我国少数民族文字的编码(如藏、蒙古、傣、彝、朝鲜、维吾尔文等)。增加的这些内容是推荐性的,原GB18030-2000中的内容是强制性的,市场上销售的产品必须符合。故GB18030-2005为部分强制性标准,自发布之日起代替GB18030-2000。
GB18030-2022《信息技术 中文编码字符集》在2005版基础上再增加了一万多个汉字,使得汉字总数达到87887个,全面覆盖了《通用规范汉字表》中的汉字。收录的少数民族文字包括:藏文、滇东北苗文、彝文、傈僳文、朝鲜文、西双版纳新傣文、西双版纳老傣文、维吾尔文、哈萨克文、柯尔克孜文、蒙古文、德宏傣文等。
GB18030-2000字汇
GB18030-2000标准收录的字符分别以单字节、双字节和四字节编码。
1、单字节部分
本标准中,单字节的部分收录了GB 11383的0x00到0x7F全部128个字符及单字节编码的欧元符号。
2、双字节部分
本标准中,双字节的部分收录内容如下:
GB 13000.1的全部CJK统一汉字字符。
GB 13000.1的CJK兼容区挑选出来的21个汉字。
GB 13000.1中收录而GB 2312未收录的我国台湾地区使用的图形字符139个。
GB 13000.1收录的其它字符31个。
GB 2312中的非汉字符号。
GB 12345 的竖排标点符号19个。
GB 2312未收录的10个小写罗马数字。
GB 2312未收录的带音调的汉语拼音字母5个以及ɑ 和ɡ 。
汉字数字“〇”。
表意文字描述符13个。
增补汉字和部首/构件80个。
双字节编码的欧元符号。
3 、四字节部分
本标准的四字节的部分,收录了上述双字节字符之外的,包括CJK统一汉字扩充A在内的GB 13000.1 中的全部字符。
GB18030-2005字汇
GB18030-2005标准收录的字符分别以单字节、双字节或四字节编码。
1、单字节部分
本标准中,单字节的部分收录了GB/T 11383-1989的0x00到0x7F全部128个字符。
2、双字节部分
本标准中,双字节的部分收录内容如下:
GB 13000.1-1993的全部CJK统一汉字字符。
GB 13000.1-1993的CJK兼容区挑选出来的21个汉字。
GB 13000.1-1993中收录而GB 2312未收录的我国台湾地区使用的图形字符139个。
GB 13000.1-1993收录的其它字符31个。
GB 2312中的非汉字符号。
GB 12345 的竖排标点符号19个。
GB 2312未收录的10个小写罗马数字。
GB 2312未收录的带音调的汉语拼音字母5个以及ɑ 和ɡ 。
汉字数字“〇”。
表意文字描述符13个。
对GB 13000.1-1993增补的汉字和部首/构件80个。
双字节编码的欧元符号。
3、四字节部分
本标准的四字节的部分,收录了上述双字节字符之外的,GB 13000的CJK统一汉字扩充A、CJK统一汉字扩充B和已经在GB13000中编码的我国少数民族文字的字符。
GB18030-2005最主要的变化是增加了CJK统一汉字扩充B。它还去掉了单字节编码的欧元符号0x80)。
GB18030有1611668个码位,在GB18030-2005中定义了76556个字符。随着我国汉字整理和编码研究工作的不断深入,以及国际标准ISO/IEC 10646的不断发展,GB18030所收录的字符将在新版本中增加。
GB18030-2022字汇
GB18030-2022标准收录的字符分别以单字节、双字节或四字节编码。
1、单字节部分
本标准中,单字节的部分收录了GB/T 11383-1989的0x00到0x7F全部128个字符。
2、双字节部分
双字节部分采用两个八位二进制位串表示一个字符,其首字节码位从0x81~0xFE,尾字节码位分别是0x40~0x7E和0x80~0xFE。
3、双字节部分
四字节部分采用GB/T 11383-1989未采用的0x30~0x39作为对双字节编码扩充的后缀,编码范围为0x81308130~0xFE39FE39。四字节字符的第一个字节编码范围为0x81~0xFE;第二个字节编码范围为0x30~0x39;第三个字节编码范围为0x81~0xFE;第四个字节编码范围为0x30~0x39。即:
0x81308130~0x81308139;
0x81308230~0x81308239;
……
0x8130FE30~0x8130FE39;
0x81318130~0x81318139;
……
0x8131FE30~0x8131FE39;
……
0x82308130~0x82308139;
……
0x8230FE30~0x8230FE39;
……
0xFE308130~0xFE308139;
……
0xFE39FE30~0xFE39FE39。
GB18030-2000汉字
类别 |
码位范围 |
码位数 |
字符数 |
字符类型 |
双字节部分 |
第一字节0xB0-0xF7 |
6768 |
6763 |
汉字 |
第二字节0xA1-0xFE |
||||
第一字节0x81-0xA0 |
6080 |
6080 |
汉字 |
|
第二字节0x40-0xFE |
||||
第一字节0xAA-0xFE |
8160 |
8160 |
汉字 |
|
第二字节0x40-0xA0 |
||||
四字节部分 |
第一字节0x81-0x82 |
6530 |
6530 |
CJK统一汉字扩充A |
第二字节0x30-0x39 |
||||
第三字节0x81-0xFE | ||||
第四字节0x30-0x39 |
GB18030-2005汉字
类别 |
码位范围 |
码位数 |
字符数 |
字符类型 |
双字节部分 |
第一字节0xB0-0xF7 |
6768 |
6763 |
汉字 |
第二字节0xA1-0xFE |
||||
第一字节0x81-0xA0 |
6080 |
6080 |
汉字 |
|
第二字节0x40-0xFE |
||||
第一字节0xAA-0xFE |
8160 |
8160 |
汉字 |
|
第二字节0x40-0xA0 |
||||
四字节部分 |
第一字节0x81-0x82 |
6530 |
6530 |
CJK统一汉字扩充A |
第二字节0x30-0x39 |
||||
第三字节0x81-0xFE |
||||
第四字节0x30-0x39 |
||||
第一字节0x95-0x98 | 42711 |
42711 |
CJK统一汉字扩充B |
|
第二字节0x30-0x39 | ||||
第三字节0x81-0xFE | ||||
第四字节0x30-0x39 |
GB18030-2022汉字
双字节部分 | 2区: 首字节0xB0~0xF7 尾字节0xA1~0xFE |
6768 | 6763 | 汉字 |
3区: 首字节0x81~0xA0 尾字节0x40~0x7E和0x80~0xFE |
6080 | 6080 | 汉字 | |
4区: 首字节0xAA~0xFE 尾字节0x40~0x7E和0x80~0xA0 |
8160 | 8145 | 汉字 | |
四字节部分 | 0x8139EE39~0x82358738 | 6530 | 6530 | CJK统一汉字扩充A |
0x82358F33~0x82359636 | 74 | 66 | CJK统一汉字 | |
0x95328236~0x9835F336 | 42711 | 42711 | CJK统一汉字扩充B | |
0x9835F738~0x98399E36 | 4149 | 4149 | CJK统一汉字扩充C | |
0x98399F38~0x9839B539 | 222 | 222 | CJK统一汉字扩充D | |
0x9839B632~0x9933FE33 | 5762 | 5762 | CJK统一汉字扩充E | |
0x99348138~0x9939F730 | 7473 | 7473 | CJK统一汉字扩充F |
GB18030码位分配
GB18030编码采用单字节、双字节和四字节三种方式对字符编码。
- 单字节部分采用GB/T 11383的编码结构与规则,使用0x00至0x7F码位(对应ASCII码位)。
- 双字节部分,首字节码位从0x81至0xFE,尾字节码位分别是0x40至0x7E和0x80至0xFE。
- 四字节部分采用GB/T 11383未采用的0x30到0x39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0x81308130到0xFE39FE39。其中第一、三个字节编码码位均为0x81至0xFE,第二、四个字节编码码位均为0x30至0x39。
若要查询具体字符的编码请前往:汉字字符集编码查询。