字符编码

字符编码


1. GB2312、GBK、GB18030的介绍

1.1 GB2312

GB2312是GB2312-80的简称,是1981年5月1日实施的。

GB2312采用双字节编码,每个字节使用7位。共收录7445个图形字符。编码范围为2121H-777EH,与ASCII有重叠,通行的方法将每个字节最高位置为1。

1.2 GBK

由于GB2312收到文字无法满足通常的使用,在1995年12月1号发布了第一版GBK,K是扩展的首字母。

GBK同样采用双字节表示,编码范围为8140H-FEFEH之间,共收录21886个图形符号。

其包括:
* GB2312中的字符。
* BIG5中全部汉字。
* 其他字符。

这表明GBK是兼容GB2312的。

1.3 GB18030

GB18030分为两个主要版本GB18030-2000和GB18030-2005。分另发布于2000年3月17号和2005年11月8号。

GB18030采用了变字节的编码,使用一二四字节编码。向下兼容GB2312和GBK。

在glibc 2.2.x中已经全面支持了GB18030与UCS-4之间的转换。

1.4 BIG5

BIG5是繁体字编码方案。

Windows早期版本采用内码的方式来支持不同的语言,也就是说根据内码设置的不同,来解析图形字符。其中GBK的内码是CP936,GB18030的内码是CP54936。

Unicode、UCS与UTF

由于全世界存在多种的语言,而且使用着不同的编码方式。这给同时使用多种语言的用户和软件的开发带了很多的疑惑。希望设计一种编码能将当前所有的语言文字、字符、常用图形都编码在内,这就是Unicode。

Unicode是可以编码所有的全世界的语言文字的方案。Unicode的学名是”Universal Multiple-Octet Coded Character Set”,简称为UCS。

UCS中是规定了如何编码,并没有规定如何传输和存储这个编码。例如,’汉’的编码是6C49,可以采用4个字节来存储,依次为6, C, 4, 9。也可以采用2个字节来存储,依次为6C, 49。这个字节在计算机存储的方式,也存在放存储顺序可以是先6C49,或者先496C的方式。关键在于读写双方要达成一致。这就是需要规定传输与存储方式的原因。

UTF是”UCS Transformation Format”的缩写。其中熟知的UTF8和UTF16都传输也存储的方式。

  1. GB2312、GBK、GB18030的介绍
  2. 字符编码笔记:ASCII,Unicode和UTF-8
原文地址:https://www.cnblogs.com/furzoom/p/7710129.html