带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(6)

简介: 带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(6)

带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(5) https://developer.aliyun.com/article/1240898?groupCode=tech_library


9.4、GB18030


随着计算机的发展,GBK的2万多个字符也还是扛不住。


于是2000年我国又制定了新标准 GB18030,用来替代 GBK 标准。GB18030是强制性标准,现在在中国大陆销售的软件都支持 GB18030。


GB18030其实是对齐Unicode标准的,里面包括了所有Unicode字符集,也算是Unicode的一种实现(UTF)。


那既然有了UTF我们为什么还要搞一套Unicode实现?


主要是UTF-8/UCS-2他们是不兼容GB2312的,如果直接升级那么就全乱码了,所以GB18030是为了兼容GB系列,是GBK、GB2312的超集,当我们原先的GB2312(GBK)软件考虑升级到国际化Unicode时,可以直接使用GB18030进行升级。


GB18030虽然也是GB2312的扩展,但它和GBK的扩展方式不一样,GBK主要是充分利用了GB2312的一些没定义的编码空间,而GB18030采用的是字节变长编码,单字节区兼容ASCII、双字节区兼容GBK、四字节区对齐所有Unicode 码位。


实现原理上主要是采用第二字节未使用到的0x30~0x39编码空间来判断是否四字节。



具体就是:

  • 1)单字节,其值从0到0x7F。
  • 2) 双字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x40到0xFE(不包括0x7F)。
  • 3)四字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x30到0x39,第三个字节的值从0x81到0xFE,第四个字节的值从0x30到0x39。
相关文章
|
4月前
字符编码问题之GB2312编码扩充到包括更多汉字和生僻字的如何解决
字符编码问题之GB2312编码扩充到包括更多汉字和生僻字的如何解决
86 0
|
4月前
字符编码问题之GB2312编码设计来避免与ASCII字符编码冲突如何解决
字符编码问题之GB2312编码设计来避免与ASCII字符编码冲突如何解决
70 0
|
4月前
字符编码问题之GB18030实现字节变长编码的如何解决
字符编码问题之GB18030实现字节变长编码的如何解决
44 0
|
4月前
字符编码问题之UTF-16支持超过6w多个码点的如何解决
字符编码问题之UTF-16支持超过6w多个码点的如何解决
40 0
|
存储
带你读《全景揭秘字符编码》之二:二、什么是字符编码?
带你读《全景揭秘字符编码》之二:二、什么是字符编码?
252 1
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(1)
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(1)
165 0
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(5)
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(5)
141 0
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(3)
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(3)
141 0
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(4)
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(4)
148 0
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(2)
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(2)
157 0