19

阅读有关 UTF-8 的 Wikipedia 文章,我一直想知道overlong一词。这个术语被多次使用,但文章没有为其含义提供定义或参考。

我想知道是否有人可以解释该术语及其用途。

4

2 回答 2

20

它是一个代码点的编码,它需要比它需要的更多的代码单元。

例如,U+0020 在 UTF-8 中由单字节表示0x20。如果你0xc0 0xa0以正常方式解码这两个字节,你仍然会回到 U+0020,但这是一个无效的表示。

Unicode Corrigendum #1有更多信息,特别是在表 3.1B 周围。

于 2011-08-18T19:39:57.783 回答
5

UTF-8 理论上允许字符的不同表示形式也具有较短的字符。例如,您可以通过将 MSB 设置为零来将 ASCII 字符编码为两个字节。UTF-8 规范明确禁止这样做。

于 2011-08-18T19:41:25.483 回答