答案 0 :(得分:0)
是的。这是UTF-8设计中的一个故意选择,以便与现有的7位ASCII兼容。
还特意设计了编码,以使7位ASCII值除与ASCII等价的 以外均无意义。例如,在UTF-16中,欧元符号(€)编码为0x20 0xAC。但是0x20是ASCII中的SPACE。因此,如果仅ASCII算法尝试对以UTF-16编码的字符串“€10”进行定界,则会破坏数据。
在UTF-8中不会发生这种情况。 €在此处编码为0xE2 0x82 0xAC,都不是合法的7位ASCII值。因此,即使它对UTF-8编码一无所知,仍可以在ASCII SPACE(0x20)上天真地分割的ASCII算法仍然有效。 (对于任何ASCII字符,例如斜杠,逗号,反斜杠,百分号等,也是如此。)UTF-8是一种非常聪明的文本编码。