字符集
常见的字符集有ASCII字符集和Unicode字符集。
ASCII字符集包含127个字母,包括大小写英文字母、数字和一些符号,比如大写字母A对应65,小写字母z对应122。
Unicode字符集包含ASCII字符集和其他所有语言的字符集。
编码方式
ASCII字符集对应的编码方式就是ASCII编码。
字符集和编码方式的关系就好比函数的关系:
字符集为自变量x的定义域,编码规则相当于映射关系f。x经过f(x)的变换后,生成能被电脑执行的二进制数。
在ASCII编码中,一个字符变换成二进制后为8byte(8比特)即1bit(1字节)。
ASCII编码、Unicode编码和utf-8编码区别
因为ASCII编码只能处理英文字母、数字和一些符号,所以为了处理汉字我们就编写了GB2312编码,为了处理日文小日本就编写了他们的编码方式,就这样每个国家语言都有自己制定的一套编码。在这种情况下,当我们阅读其他编码方式处理的文章时就会出现乱码情况。
为了解决乱码问题,Unicode编码应运而生。Unicode编码就是把所有的语言编码方式统一成一套编码体系从而解决乱码问题。
然而,采用Unicode编码时一个字符需要用两个字节存储空间,采用Unicode编码处理一个纯英文的文本相比ASCII编码所消耗的内存空间整整多了1倍,因此相当不划算。
为了更高效的利用存储空间, 又出现了把Unicode编码转化为“可变长编码”UTF-8编码,UTF-8编码将Unicode字符按数字大小编码为1-6个字节,英文字母被编码成一个字节,常用汉字被编码成三个字节,如果你编译的文本是纯英文的,那么用UTF-8就会非常节省空间,并且ASCII码也是UTF-8的一部分。