GB 18030

来自GSXAB的知识库
GB18030
术语名称 GB18030
英语名称 GB18030
别名 GB18030-2000, GB18030-2005, GB18030-2022

GB 18030[1]中国国家标准化管理委员会工业和信息化部颁布的国家标准,是官方字符集字符编码之一,到 2025 年为止,前后共有三个不同版本。 2000 年由国家标准委颁布时,标准名为《信息技术 信息交换用汉字编码字符集 基本集的扩充》[2],标准号为 GB 18030-2000 ; 2005 年发布第一次修订,名为 《信息技术 中文编码字符集》[3],标准号为 GB 18030-2005 ; 2022 年由工业和信息化部发布第二次修订,名为《信息技术 中文编码字符集》[4][5],标准号为 GB 18030-2022 ,作为强制标准。尽管有时也用带有年份的标准号称呼,但一般都直接统称 GB 18030 ; 2024 年发布了 GB 18030-2022 的《第 1 号修改单》。截至 2025 年,是相关领域的强制标准。

GB 18030 和较新的 Unicode 对齐,与前版相比除追加了大量较生僻的正常汉字外,也补充引入了大量类推简化字,以及不少几乎不会在非专业领域文本中出现的异体字、古文字、二简字、隶定字及各种原因已经进入 Unicode 的幽灵汉字。引入了“实现的级别”概念,规定不同等级的场景下应该提供实现的文字范围。

由于 UTF-8GBK 此前已经得到广泛应用,且后者尽管被 GB 18030 兼容,却实际被不同系统或字体或输入法在私用区加入大量特殊字符,转入 GB 18030 会产生兼容成本,且过于大而全,对企业而言有较高支持成本。由于企业操作基本看用户体验,用户并不会在意使用字符集的合规性,在已有的通常够用的字符集上切换新的只会引起用户体验下降,因此 GB 18030 实际并没有足够的强制力。

GB 18030 是一种变长的字符集和字符编码,其不区分码位与编码,也就是字符编码和码位相同,不区分同一字符集的多种编码方式。

字符集特征

收录了 GB/T 2312-1980 的全部字符,及 GB/T 13000 (即 Unicode)中 CJK 统一汉字及 CJK 统一汉字扩充 A 、 CJK 统一汉字扩充 B 、 CJK 统一汉字扩充 C 、 CJK 统一汉字扩充 D 、 CJK 统一汉字扩充 E 、 CJK 统一汉字扩充 F 的内容,以及少数民族文字字符。(节选自 GB 18030-2022 第 4 章。)

码位特征

数据采集自 GB 18030-2022 第 5~7 章。

GB 18030 中字符分为单字节、双字节、四字节三部分编码。

  • 单字节为 GB 11383
  • 双字节为第一字节 0x81-FE 第二字节 0x40-7E 和 0x80-FE 的范围,与 GBK 的范围相当。
  • 四字节整体范围为四字节依次取 0x81-FE 0x30-39 0x81-FE 0x30-39 的范围,也就是在双字节基础上使用了在数字位置的第二字节,将连续两个这样的双字节叠在一起作为四字节进行编码(推测可能是避免符号区有其他使用导致冲突,使用的是第二字节是 ASCII 数字的部分)。目前根据最高字节的差异,已使用部分可以分为两个范围:
    • 四字节依次取 0x81-84 0x30-39 0x81-FE 0x30-39 ,对应 Unicode 基本多文种平面(BMP)。
    • 四字节依次取 0x90-E3 0x30-39 0x81-FE 0x30-39 ,对应 Unicode 辅助平面。

常见编码

GB 18030

GB 18030 的内码本身就是这一字符集最常见的字符编码,也用这一名称。

代码页 54936

见词条 微软代码页 54936

使用

GB 18030 是目前的编码标准,与 GB 系一同在中国大陆随着 Windows 系统被广泛使用,几乎全部汉字处理、通信等该场景都能看到这一字符编码。但是由于 Windows 系统底层仅能支持 SBCS 和 DBCS 类型的编码,对于达到 4 字节的变长文字可以允许展示但无法纳入底层支持,在大多数场景下仍然仅支持到微软代码页 936 。也就是说目前 GB 18030 更新, GBK 更兼容,两者是并列广泛使用的。

GB 18030 目前已经作为 GBK 的继任者得到基本支持,多数情况下支持到实现级别 1 ,也就是 CJK 统一汉字区与 CJK 统一汉字扩充 A ,但是标准确实有些生不逢时。随着 Unicode 流行,在网页等潜在面向国际的场景逐渐扩大, GB 系本来使用就在不断减少中,并没有哪个专门的 GB 系优于 Unicode 系的场景出现。


常见字符编码
早期编码 电报码、 BCD 码BCDICEBCDIC)、ASCIIISO 646
ISO 8859 ISO 8859-1 、 ISO 8859-2 、……
国标系列 IBM 代码页 936 / GB 2312微软代码页 936 / GBK微软代码页 54936 / GB 18030
Unicode / ISO 10646 UTF-7 、 UTF-8UTF-16UTF-32