在UTF-8中,代码点> 127用多个字节编码。例如,字符U+041F (100'0001'1111)
编码为:
1101'0000 1001'1111
^^^ ^^
标记位确定前导和尾随字节,其他位是代码点的实际位。
但我们可以将代码点1
编码为
1100'0000 1000'0001
当然,它是多余的,但在UTF-8中是合法的吗?
答案 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