之前一直不明白Unicode和utf-8两者之间的关系,在学习其他知识时,碰到了里面的解释,很轻松的理解了,在此记录下来:
Unicode为世界上所有语言的所有字符,都赋予一个全球唯一的编号(这个编号叫做"码点"),它是字符集。
Unicode只定义字符和编号的对应关系,不关心这个编号在计算机中如何存储。要让字符真正变成可以存储和传输的二进制数据,还需要编码方案(如 UTF-8、UTF-16 等)来规定“码点”如何转换为字节序列。
所以,一个字符的完整生命周期是:
字符 → Unicode码点(抽象编号) → UTF-8编码(具体字节)
以汉字"你"为例:
字符是 你在Unicode花名册里,它的码点是 U+4F60通过UTF-8编码规则,这个码点被转换成3个字节的二进制数据:\xE4\xBD\xA0(这是十六进制表示)