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

时间:2015-11-15 17:54:14

标签: encoding utf-8

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

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

unescape(encodeURI("›")).length

(来自https://gist.github.com/mathiasbynens/1010324

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

1 个答案:

答案 0 :(得分:2)

The › character is U+203A,而不是U+009B(这是一个不可打印的转义码,"control sequence introducer")。