字符编码的发展


1、字符编码的出现

计算机只能处理二进制,即0和1,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte)。

2、ASCII的由来

由于计算机是美国发明,所以只需要出现大小写英文字母、数字和一些符号。因此,最早只有127个字符被编码到计算机里,也就是7位2进制数字,最高位(第八位)为0。这个编码表被称为ASCII编码。

3、Unicode的由来

上面提到的ASCII编码,由它来处理中文显然是一个字节不够的。至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312(GBK)编码。

全世界有上百种语言,各国有各国的标准,就会不可避免地出现冲突,在多语言混合的文本中,会显示出来乱码。

因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,也被称为万国码,这样就不会再有乱码问题了。

一开始。Unicode只是2个字节,不断地,更多的字符被编写到Unicode中。

现代操作系统和大多数编程语言都直接支持Unicode。

但是,Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。一个符号的表示至少需要2个字节,如果表示其他更大的符号,可能需要3个字节或者4个字节,甚至更多。

存储会造成极大的浪费,文本文件的大小会因此大出二三倍,。

于是unicode在很长一段时间内无法被推广。

4、UTF-8

互联网的普及,强烈要求出现一种统一的编码方式。

UTF-8就是在互联网上使用最广的一种unicode的实现方式。其他实现方式还包括UTF-16和UTF-32,不过在互联网上基本不用。

UTF-8是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度