什么是计算机编码
编码是信息从一种形式或格式转换为另一种形式的过程;解码则是编码的逆过程。 计算机内部只有0和1两种状态,把我们人类认识的数字、字母、文字转换成0和1的组合,这就是计算机编码。
ASCII
American Standard Code for Information Interchange,美国信息交换标准代码,这是最通用的信息交换标准,几乎后续的所有的编码都兼容ASCII码。 ASCII用8位bit表示,第一位始终为0,只定义了128位。
ASCII扩展
ASCII码只定义了一些字母、符号和数字,只适合于现代美国英语。 我们知道,8位bit总共可以定义256位字符,而ASCII码只用了128位,剩下的128位足够一些欧印语系使用了
GB2312
美国的语言和欧印的一些语言支持使用了,但是像我们的汉语还没有编码。 汉语数量极多,这时仅仅用一个字节来表示,肯定是远远不够,这时就要考虑使用多位字节来表示汉语了。 GB2312使用2个字节来表示,增加了汉字的编码标准。
Unicode
GB2312只能工中英文来使用,像比如说日语就没法使用。 Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。 Unicode只是一种编码方案,它只是规定了每个字符对应的二进制编码,至于这些二进制编码在具体的计算机系统中如何储存,则由具体字符编码集来实现。
UTF-8
UTF-8就是Unicode的一种具体实现。 特点:可变,节省存储空间。 分别由一位到四位字节组成。 单字节字符,第一个设为0。 多字节字符,第一个字节是n个1然后加一个0,后面字节前面固定10,其他位用来储存具体的二进制信息。
UTF-16
UTF-16用2个字节来表示信息,也是变长的,需要1到2位16位字符来表示。
UTF-32
很占空间,用32位bit来表示信息,所有的字符都是32位bit来表示,是等长的。