2.8.2. 各种中文字符编码标准的关系

( 中国大陆的标准)GB 13000.1-93

=(国际标准)Unicode 1.1

(中国大陆标准)GB2312-80

= 简称GB2312

= Windows系统中的原先的CP936

(微软制定的)GBK

= (微软在编码方面)对 GB2312 的扩展

= (微软在所包含字符方面上包含了)GB 13000.1-93 + 其他部分汉字+ 台湾和香港的繁体 + 日语 + 朝鲜汉字

= Unicode 1.1 + 其他部分汉字+ 台湾和香港的繁体 + 日语 + 朝鲜汉字

对于GBK

  • 在编码方面:向下兼容GB2312,但是和GB 13000不同
  • 在内容方面:等价于GB13000

微软中现在的新的CP936

= GBK

=兼容旧的GB2312

在技术编码方面上,演化顺序为:

ASCII ⇒ GB2312 ⇒ GBK ⇒ GB18030

后者对之前的,都是支持之前的编码,即向下兼容,即同一个字符,在这些编码中,都是同样的值,后面的标准,支持更多的字符。

区分中文编码的方法是高字节的最高位不为 0。

按照程序员的称呼,GB2312、GBK 到 GB18030 都属于双字节字符集 (DBCS)

表 2.5. 中文字符相关编码标准

编码标准别名标准所属包含字符
ASCII 国际通用 
GB2312微软Windows中以前的CP936中国大陆6763 个汉字和 682 个其它符号
Unicode 1.1 国际通用20,902个字符
GB13000 中国大陆20,902个字符
GBK微软Windows中现在的CP936微软21886 个符号
GB18030微软Windows中的CP54936中国大陆27484 个汉字+其他少数民族字符