ASCII 码
计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有 0 和 1 两种 状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。
也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000 到 11111111 。
上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。
ASCII 码一共规定了128个字符的编码,比如空格 SPACE 是32(二进制 00100000 ),大写的字母 A 是65(二进制 01000001 )。这128个符号(包括32个不能打印出来的控制符号),只占用了一
个字节的后面7位,最前面的一位统一规定为 0 。
Unicode
Unicode 只是一个符号集
。Unicode可以容纳100多万个符号。他规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。比如,汉字严
的Unicode是十六进制数 4E25 ,转换成二进制数足足有15位
( 100111000100101 ),也就是说,这个符号的表示至少需要2个字节。表示其他更大的符号,可能需要3个字节或者4个字节,甚至更多。
UTF-8
UTF-8 就是在互联网上使用最广的一种 Unicode 的实现方式。UTF-8 最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号, 根据不同的符号而变化字节长度。