Unicode 为什么角色是é;在UTF-8中编码为0xC3 0xA9?
如果我将字符Unicode 为什么角色是é;在UTF-8中编码为0xC3 0xA9?,unicode,encoding,utf-8,Unicode,Encoding,Utf 8,如果我将字符é写入一个文件,并用十六进制编辑器打开它,我可以看到字节0xC3、0xA9 在维基百科中,第一个字节称为前导字节,第二个称为尾随字节。0xC3是一个元数据字节,意味着它编码的字符为1字节0xA9,但é的unicode值为 我基本上想知道为什么它是用0xA9而不是0xE9编码的。文本编辑器如何从0xC3A9转换为0xE9?任何移位操作?是什么让你认为0xC3是“元数据字节” UTF-8中的每个字节都包含编码的码点的相关信息 UTF-8编码码点的第一个字节包含一个标记(前导1的数量),该
é
写入一个文件,并用十六进制编辑器打开它,我可以看到字节0xC3、0xA9
在维基百科中,第一个字节称为前导字节,第二个称为尾随字节。0xC3是一个元数据字节,意味着它编码的字符为1字节0xA9,但é
的unicode值为
我基本上想知道为什么它是用0xA9而不是0xE9编码的。文本编辑器如何从0xC3A9转换为0xE9?任何移位操作?是什么让你认为0xC3是“元数据字节” UTF-8中的每个字节都包含编码的码点的相关信息 UTF-8编码码点的第一个字节包含一个标记(前导1的数量),该标记指示用于编码码点(*)和实际码点的前几位的字节总数。然后,所有尾随字节都包含一个“延续标记”(位
10
)和编码码点的另外6位
维基百科关于UTF-8的文章已经发布
有一种直接使用码点值的编码:UTF-32(又称UCS-4),基本上是“将码点值用作32位值”
(*)标记实际上非常简单:如果字节以开头(即它的最高有效位是)0
,那么它是单字节编码(即0到127之间的码点)。如果它以10
开头,则它是一个连续字节。如果是110
,1110
或11110
则分别是2、3或4字节序列的开始11111 0
和11111 0
过去也有定义,但在现代UTF-8中不再有效(因为这些仅用于编码保证在Unicode标准中永远不会使用的值)。说明如何将UTF-8字节0xC3A9映射为字符é
。