ASCII、Unicode和UTF-8这三种编码的关系
计算机在处理文本的时候 最终都是要转化成二进制的 通过对应的编码将文本转化成对应的二进制 反正也是一样的 讲二进制通过某种编码格式转化对应的文本 ,如果在转化过程中出错的话就会出现乱码
发展历程
ASCII -》Unicode -》 UTF-8
ASCII -》Unicode -》
发展原因 和 解决的问题
ASCII编码是1个字节,而Unicode编码通常是2个字节
ASCII -》Unicode
因为计算机是美国人发明的,所以ASCII编码中一个被转化的文本内容就不是很多基本只有一些特殊符合、数字、英文字母、在这个计算机盛行的时代很显然不够用,所以就诞生了Unicode编码,通过增加字节来增加可以被编码的文本
Unicode -》 UTF-8
新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。
所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间
字符 | ASCII | Unicode | UTF-8 |
---|---|---|---|
A | 01000001 | 00000000 01000001 | 01000001 |
中 | 无 | 01001110 00101101 | 11100100 10111000 10101101 |