https://www.qqxiuzi.cn/zh/hanzi-gb18030-bianma.php

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汉字

如下表所示,GB18030-2000收录了27533个汉字:
类别 码位范围 码位数 字符数 字符类型
双字节部分 第一字节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
27533就是6763+6080+8160+6530。双字节部分的6763+6080+8160=21003个汉字就是GBK的21003个汉字。
在Unicode中,CJK统一汉字扩充A有6582个汉字,为什么这里只有6530个汉字?
这是因为在GBK时代,双字节部分已经收录过CJK统一汉字扩充A的52个汉字,所以还余6530个汉字。

GB18030-2005汉字

如下表所示,GB18030-2005收录了70244个汉字:
类别 码位范围 码位数 字符数 字符类型
双字节部分 第一字节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
70244就是6763+6080+8160+6530+42711。

GB18030-2022汉字

如下表所示,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
双字节4区删除了6个重复编码的汉字构件和9个重复编码的汉字。
上表计算后的字符数为87901个,媒体报道给出的汉字数量为87887个,可能上表中包含的汉字构件未统计为汉字,未核实。

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。

若要查询具体字符的编码请前往:汉字字符集编码查询

[转帖]GB18030 编码的更多相关文章

  1. 用iconv指令解决utf8和gb18030编码间转换

    Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致.Linux下使用的编码是utf8,而Windows使用的是gb18030.  解决方案:  在终端中,进入到 ...

  2. [转帖]字符编码笔记:ASCII,Unicode 和 UTF-8

    字符编码笔记:ASCII,Unicode 和 UTF-8 http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 转帖 ...

  3. 刨根究底字符编码之五——简体汉字编码方案(GB2312、GBK、GB18030、GB13000)以及全角、半角、CJK

    简体汉字编码方案(GB2312.GBK.GB18030.GB13000)以及全角.半角.CJK   一.概述 1. 英文字母再加一些其他标点字符之类的也不会超过256个,用一个字节来表示一个字符就足够 ...

  4. [转]各种编码ANSI、GB2312、GBK、GB18030、UNICODE以及UTF-8傻傻分不清!

    计算机编程中的编码一直是让新手非常头疼的问题,特别是 GBK.GB2312.UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚,看一遍貌似懂了,但实际使用的时候又 ...

  5. 编码介绍(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)

    转载:http://blog.jobbole.com/30526/(前面内容)和http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf ...

  6. 关于编码的发展演变:ASCII、GB2312、GBK、gb18030、Unicode、UTF-8

    [1]ASCII 每个字符占据1bytes(字节),第一次以规范标准发表是在1967年,最后一次修订是在1986年.用二进制表示的话最高位必须为0(扩展的ASCII不在考虑范围内),因此ASCII只能 ...

  7. 编码的来源于格式简介ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE

    编码一直是让新手头疼的问题,特别是 GBK.GB2312.UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚.但是编码又是那么重要,特别在网页这一块.如果你打出来 ...

  8. 字符集、字符编码、国际化、本地化简要总结(UNICODE/UTF/ASCII/GB2312/GBK/GB18030)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   普通的linux 和 普通的windows.    ...

  9. 何为编码 GBK 和 UTF8编码?GBK,GB2312与区位码有何关系?

    何为GBK,何为GB2312,与区位码有何渊源? 区位码是早些年(1980)中国制定的一个编码标准,如果有玩过小霸王学习机的话,应该会记得有个叫做“区位”的输入法(没记错的话是按F4选择).就是打四个 ...

  10. GBK 编码

    GBK编码范围:8140-FEFE,汉字编码范围见第二节:码位分配及顺序. GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准.GBK编码依然采用双字节编码方案,其编码范围:8 ...

随机推荐

  1. 【Redis】一文掌握Redis原理及常见问题

    Redis是基于内存数据库,操作效率高,提供丰富的数据结构(Redis底层对数据结构还做了优化),可用作数据库,缓存,消息中间件等.如今广泛用于互联网大厂,面试必考点之一,本文从数据结构,到集群,到常 ...

  2. TypeChat、JSONSchemaChat实战 - 让ChatGPT更听你的话

    TypeChat 用一句话概括,就是用了它你可以让大语言模型(比如 ChatGPT)将自然语言转换成特定类型的 JSON 数据. 我们在使用 ChatGPT 的时候,大致流程如下: 假如我们需要 Ch ...

  3. 全量通过,华为云GaussDB首批完成信通院全密态数据库评测

    摘要:100%全量通过!基于全栈创新计算架构的全密态数据库华为云GaussDB,完成了中国信通院组织的首批"全密态数据库"产品能力评测. 本文分享自华为云社区<全量通过!华为 ...

  4. OpenCV萌新福音:易上手的数字识别实践案例

    摘要:信用卡识别的案例用到了图像处理的一些基本操作,对刚上手CV的人来说还是比较友好的. 本文分享自华为云社区<Python openCV案例:信用卡数字识别>,原文作者:深蓝的回音 . ...

  5. 讲透学烂二叉树(三):二叉树的遍历图解算法步骤及JS代码

    二叉树的遍历是指不重复地访问二叉树中所有结点,主要指非空二叉树,对于空二叉树则结束返回. 二叉树的遍历分为 深度优先遍历 先序遍历:根节点->左子树->右子树(根左右),有的叫:前序遍历 ...

  6. 万字长文|Hadoop入门笔记(附资料)

    大数据迅速发展,但是Hadoop的基础地位一直没有改变.理解并掌握Hadoop相关知识对于之后的相关组件学习有着地基的作用.本文整理了Hadoop基础理论知识与常用组件介绍,虽然有一些组件已经不太常用 ...

  7. 提升数据决策时效,火山引擎DataLeapCDC分库分表能力升级!

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   近日,大数据研发治理套件DataLeap数据集成更新CDC分库分表能力,可做到将多个实例的多个数据库的多个分表 ...

  8. Solon 问答:项目如何直接添加 https 支持?

    app.yml 添加两行配置即可: #设定SSL证书(支持:solon.boot.jdkhttp 或 solon.boot.jlhttp 或 solon.boot.jetty 或 solon.boot ...

  9. python 升级后 yum 无法使用 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: `/usr/libexec/urlgrabber-ext-down`

    原因为升级python后新建了软连接指向了新版本,除非同时升级yum不然无法使用.需要手动更改报错文件指向新版本后即可解决. [root@localhost pdserving]# yum insta ...

  10. NettyHandler 常用生命周期方法

    NettyHandler 常用生命周期方法 @Component @ChannelHandler.Sharable //表示这里是线程安全的 public class ImServerHandler ...