我们都知道,计算机使用 0 和 1 来存储文本。比如字符「C」被存成「01000011」,那么计算机在显示这个字符时需要经过两个步骤:
1、计算机读取「01000011」,得到数字 67,因为 67 被编码成「01000011」。
2、计算机在 Unicode 字符集中查找 67,找到了「C」。
同样的:
1、我的电脑将「C」映射成 Unicode 字符集中的 67。
2、我的电脑将 67 编码成「01000011」,并发送给 Web 服务器。
几乎所有的网络应用都使用了 Unicode 字符集,因为没有理由使用其他字符集。
Unicode 字符集包含了上百万个字符。最简单的编码是 UTF-32,每个字符使用 32 位。这样做最简单,因为一直以来,计算机将 32 位视为数字,而计算机最在行的就是处理数字。但问题是,这样太浪费空间了。
UTF-8 可以节省空间,在 UTF-8 中,字符「C」只需要 8 位,一些不常用的字符,比如「」需要 32 位。其他的字符可能使用 16 位或 24 位。一篇类似本文这样的文章,如果使用 UTF-8 编码,占用的空间只有 UTF-32 的四分之一左右。