utf-8和ascii的前128个字符是否相同?

时间:2019-06-29 13:25:07

标签: encoding utf-8 ascii

utf-8和ascii的前128个字符是否相同?

utf-8 table

Ascii table

1 个答案:

答案 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是一种非常聪明的文本编码。