GB18030字符集字符编码1. GB180301.1 版本演变2. GB18030字符集3. GB18030字符编号4. GB18030字符编码4.1 编辑器如何区分双字节和四字节4.2 可编码位数的计算方式5. 使用编辑器查看6. 参考文档1. GB18030GBK不是强制性国家标准只是指导性技术规范;GB18030是中国国家强制性汉字编码标准。GB18030基本兼容GBK完全兼容GB2312GB18030除了有82个字符的Unicode映射关系和GBK不一样之外完全兼容GBK的字符和字符编码。例如GBK中的【0xfe51】 映射的是Unicode的【0xe816】GB18030中的【0xfe51】 映射的是Unicode的【0x20087】映射不一样的原因是主要是有一些字符GBK收录了但是Unicode没有收录。但是后来Unicode又收录了。导致同一个字符GBK和GB18030的Unicode映射关系不一样。GB国标18030 是编号无实际意义 。1.1 版本演变GB18030-2000最早版本收录约2.7万个汉字首次强制要求支持。GB18030-2005收录汉字增至7万多为当时主要执行标准。本篇基于GB18030-2005。GB18030-2022现行最重要的更新是实现了对全部8.8万余个Unicode 11.0汉字的完全覆盖包括中日韩统一表意文字扩展B至G区并大幅新增了公安人口信息系统中使用的生僻字。2. GB18030字符集共收录76556个字符128个ASCII 字符70244个汉字字符GBK是21003个汉字字符新增的主要是古汉字、生僻字和少数民族文字例如藏文维吾尔文蒙古文。6184个图形字符GBK是883个图形字符新增的主要是少数民族的图形字符3. GB18030字符编号没有具体的编号规则4. GB18030字符编码GB18030的编码方式有3种编码方式编码范围可编码位数实际编码位数单字节编码0x00~0x7f128128双字节编码第一个字节0x81-0xfe第二个字节0x40-0xfe 去掉0x7f2394021897四字节编码第一个字节0x81-0xfe第二个字节0x30-0x39第三个字节0x81-0xfe第四个字节0x30-0x39158760054531总数161168876556单字节编码和GBK一样表示全部的128个ASCII字符双字节编码可编码位数23940GBK实际编码21886个字符GB18030实际编码21897也就是说在双字节这个范围GB18030只是在GBK的基础上比GBK多扩充了11个字符。增加的11个字符是一个欧元字符10个竖排标点字符。四字节编码第一个字节和双字节编码方式的第一个字节一样。 这些四字节编码是古汉字、生僻字和少数民族文字。4.1 编辑器如何区分双字节和四字节主要区分点在第二个字节如果第二个字节是0x30~0x39则四个字节表示一个字符如果第二个字节是0x40~0xfe 并且不是0x7f则两个字节表示一个字符4.2 可编码位数的计算方式双字节编码(0xfe-0x811) * (0xfe-0x401-1) 23940四字节编码(0xfe-0x811) * (0x39-0x301) * (0xfe-0x811) * (0x39-0x301) 126 * 10 * 126 * 10 15876005. 使用编辑器查看创建一个文本文件编码方式设置为GB18030然后输入以下字符小写字母a简体汉字汉少数民族文字ح2. 再切换 到 Hex Editor查看61也就是小写字母aBA BA即简体汉字汉在国家标准第20页81 31 84 35即少数民族文字ح在国家标准第100页6. 参考文档GB18030国家标准