Encoding UTF-8扩展ASCII字符意外占用3字节

Encoding UTF-8扩展ASCII字符意外占用3字节,encoding,utf-8,Encoding,Utf 8,在UTF-8中,我的理解(维基百科也证实了这一点)是ASCII中的任何字符都需要一个字节,而U+07FF以下的任何字符都需要两个字节。因此,我假设字符>>(›)应该用两个字节编码,因为它在正确的范围内(代码点是U+009B) 但是,当我在浏览器的控制台(Firefox)中键入以下内容时,它会给出3而不是2: unescape(encodeURI("›")).length (来自) 显示UTF-8编码字符长度的网站似乎同意-为什么?,而不是U+009B(这是一种不可打印的转义码)。

在UTF-8中,我的理解(维基百科也证实了这一点)是ASCII中的任何字符都需要一个字节,而
U+07FF
以下的任何字符都需要两个字节。因此,我假设字符
>>
›
)应该用两个字节编码,因为它在正确的范围内(代码点是
U+009B

但是,当我在浏览器的控制台(Firefox)中键入以下内容时,它会给出3而不是2:

unescape(encodeURI("›")).length
(来自)


显示UTF-8编码字符长度的网站似乎同意-为什么?

,而不是
U+009B
(这是一种不可打印的转义码)。

所以UTF-8编码使用了不同于“扩展ASCII”的扩展ASCII版本?你看过链接了吗?字符
根本不是扩展ASCII的一部分。有一个看起来像它,但它不是一个可打印字符。没有一个定义良好的字符集的名称是“扩展ASCII”。您找到这个的资源可能使用了这个不精确的术语来指代。