Unicode与Utf-8的关系

49 阅读1分钟

之前一直不明白Unicode和utf-8两者之间的关系,在学习其他知识时,碰到了里面的解释,很轻松的理解了,在此记录下来:

Unicode为世界上所有语言的所有字符,都赋予一个全球唯一的编号(这个编号叫做"码点"),它是字符集

Unicode只定义字符和编号的对应关系,不关心这个编号在计算机中如何存储。要让字符真正变成可以存储和传输的二进制数据,还需要编码方案(如 UTF-8、UTF-16 等)来规定“码点”如何转换为字节序列。

所以,一个字符的完整生命周期是:
字符 → Unicode码点(抽象编号) → UTF-8编码(具体字节)

以汉字"你"为例: 字符是 在Unicode花名册里,它的码点是 U+4F60通过UTF-8编码规则,这个码点被转换成3个字节的二进制数据:\xE4\xBD\xA0(这是十六进制表示)