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映射为字符
é