字符编码
字符编码
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
。这个字节在计算机存储的方式,也存在放存储顺序可以是先6C
后49
,或者先49
后6C
的方式。关键在于读写双方要达成一致。这就是需要规定传输与存储方式的原因。
UTF是”UCS Transformation Format”的缩写。其中熟知的UTF8和UTF16都传输也存储的方式。
版权声明:本文的版权归作者与博客园共同所有。转载时请在明显地方注明本文的详细链接,未经作者同意请不要删除此段声明,感谢您为保护知识产权做出的贡献。