Unicode 与 UTF-8
更多
Unicode 给字符分配码点;UTF-8 是把码点写成字节的一种编码。二者不是两个可以互换的“字符表”。[1]
码点与字节
码点通常写作 U+ 加十六进制数。例如汉字“汉”的码点是 U+6C49,按 UTF-8 编码后是三个字节 E6 B1 89。码点和每个字节的十六进制写法都可能出现在谜题中,但必须先分清所指的单位。UTF-8 使用一至四个字节编码一个 Unicode 标量值;ASCII 范围内的字符保持单字节表示。[2]
常见混淆
同一个字形可能涉及不同码点或组合形式;不可见字符也会占有码点。显示为“乱码”不一定说明原文被加密,更常见的原因之一是写入和读取时选用了不同字符编码。中文环境还可能出现 GB 18030;它与 UTF-8 是不同的字节映射,不能把一串字节在两套编码间直接混读。[3]
相关条目
ASCII编码 · Base16 · Unicode 字符