如果问这个问题,“UTF-8 和 UTF-8 有什么区别?
Unicode?”,你会自信地用简短而准确的回答
回答?在国际化的这些日子里,所有开发人员都应该
能够做到这一点。我怀疑我们中的许多人不理解这些概念
以及我们应该的。如果你觉得你属于这个群体,你应该
阅读这篇关于字符集和编码的超简短介绍。
实际上,比较 UTF-8 和 Unicode 就像比较苹果和
橘子:
UTF-8 是一种编码 - Unicode 是一个字符
设置
字符集是具有唯一编号的字符列表(这些
数字有时被称为“代码点”)。例如,在
Unicode 字符集,A 的数字是 41。
另一方面,编码是一种算法,可以翻译
将数字列表转换为二进制,以便可以将其存储在磁盘上。例如
UTF-8 会像这样翻译数字序列 1、2、3、4:
00000001 00000010 00000011 00000100
我们的数据现在被翻译成二进制,现在可以保存到
磁盘。
现在都在一起
假设应用程序从磁盘读取以下内容:
1101000 1100101 1101100 1101100 1101111
应用程序知道此数据表示一个 Unicode 字符串,编码为
UTF-8 并且必须将其作为文本显示给用户。第一步,是
将二进制数据转换为数字。该应用程序使用 UTF-8 算法
解码数据。在这种情况下,解码器返回:
104 101 108 108 111
由于应用知道这是一个 Unicode 字符串,它可以假设每个
数字代表一个字符。我们使用 Unicode 字符集来
将每个数字转换为相应的字符。所结果的
字符串是“你好”。
结论
所以当有人问你“UTF-8 和
Unicode?”,您现在可以自信地简短而准确地回答:
UTF-8(Unicode 转换格式)和 Unicode 无法比较。 UTF-8 是一种编码
用于将数字转换为二进制数据。 Unicode 是一个字符集
用于将字符转换为数字。