在UTF-8中将ASCII字符编码为多字节合法吗?

时间:2017-01-12 03:27:08

标签: encoding utf-8

在UTF-8中,代码点> 127用多个字节编码。例如,字符U+041F (100'0001'1111)编码为:

1101'0000 1001'1111
^^^       ^^

标记位确定前导和尾随字节,其他位是代码点的实际位。

但我们可以将代码点1编码为

1100'0000 1000'0001

当然,它是多余的,但在UTF-8中是合法的吗?

1 个答案:

答案 0 :(得分:2)

超长UTF-8序列不被视为代码点的有效UTF-8表示。 UTF-8解码器必须拒绝过长的序列。

维基百科引文:https://en.wikipedia.org/wiki/UTF-8#Overlong_encodings

原始RFC 2279规范:https://www.ietf.org/rfc/rfc2279.txt