ASCII, Unicode 与 UTF-8

1,ASCII

由于计算机是美国人发明的,最早只有127个字符,即大小写英文字母、数字、一些符号,被编码到计算机里,这个编码表就是ASCII表。这时每个字符用1 Byte表示。

2,Unicode

当其他语言也需要在计算机上表示时,1 Byte显然不够,这时Unicode出现了。Unicode试图把所有语言统一到一套编码,它与ASCII的区别是:ASCII用1 Byte表示字符;Unicode通常用2 Bytes,极端情况下用4~6 Bytes。ASCII扩展到Unicode也很简单,在前面补0即可。

3,UTF-8

Unicode的一个问题是效率,如果全篇文本都是英文,那么与ASCII相比Unicode占用的空间至少多了一倍。这时候又出现了把Unicode转化为“可变长编码”的做法,这就是UTF-8。UTF-8把一个Unicode根据不同数字大小编码成1~6 Bytes,常用英文字母1 Byte,汉字通常是3 Bytes,只有很偏僻的字符才会编码成4~6 Bytes。

4,在计算机中的使用

在计算机内存,统一使用Unicode编码,当需要保存到硬盘或者需要传输时,转换成UTF-8。

例如,用记事本编辑文本时,

image

文件存在硬盘中,是UTF-8编码;用记事本打开文件,先转换成Unicode送到内存。

又例如,浏览网页时,

image

上述内容来自 廖雪峰。

原文地址:https://www.cnblogs.com/freshair_cnblog/p/10001364.html