擅长:python、mysql、java
<p>是的,第一个是“由三个2字符的十六进制值组成的链,它们将等于十进制226、128和143。”它是一个字节字符串。你有一个字节字符串,因为这就是<code>encode</code>的作用。您传递了UTF-8,因此字节是输入字符串的UTF-8编码。你知道吗</p>
<p>“第二个看起来像是一个十六进制值,等于十进制8207。”有点像;它是文本字符串中UTF-16代码单元的表示法。一个或两个UTF-16编码单元对Unicode码点进行编码。在这种情况下,只有一个用于对应的码点。你知道吗</p>
<p>当然,您可以将十六进制转换为十进制,但这在这两种情况下都不是很常见或有用。代码单元是一种特定的位模式。字节是作为整数的位模式,序列化为字节序列。你知道吗</p>
<p><a href="https://unicode.org" rel="nofollow noreferrer">Unicode</a>码位范围需要21位。UTF-16以一个或两个16位代码单元对一个代码点进行编码(因此每个代码单元的字节顺序是两个字节)。UTF-8将一个码点编码为一个、两个、三个或四个8位码单元。(一个8位整数是一个字节,所以字节顺序没有意义。)每个字符编码都有一个单独的算法,可以将21位分配到所需的任意多个字节中。两者都是可逆的,完全支持Unicode字符集。所以,你可以直接把一个转换成另一个。你知道吗</p>
<p>您引用的表没有显示UTF-16。它显示Unicode码点十六进制表示法:U+200F。这种表示法是供人类识别码点的。当UTF-16在一个代码单元中编码一个代码点时,它的编号与该代码点的编号相同。你知道吗</p>