为什么Utf8与ascii兼容

时间:2013-04-12 07:47:28

标签: string utf-8 ascii

UTF-8中的

AU+0041 LATIN CAPITAL LETTER A。 ASCII中的A065

UTF-8如何向后兼容ASCII?

3 个答案:

答案 0 :(得分:20)

ASCII仅使用8位字节的前7位。所以从0000000001111111的所有组合。此范围内的所有128个字节都映射到特定字符。

UTF-8保留这些精确的映射。 ASCII中由01101011表示的字符也由UTF-8中的相同字节表示。所有其他字符以多个字节的顺序编码,其中每个字节具有最高位集;即UTF-8中所有非ASCII字符的每个字节的格式为1xxxxxxx

答案 1 :(得分:4)

为什么:

因为所有内容都已经是ASCII格式并且具有向后兼容的Unicode格式,所以采用的方式更加容易。将程序转换为使用UTF-8要比使用UTF-16容易得多,并且该程序通过仍使用ASCII继承了向后兼容的性质。

如何:

ASCII是7位编码,但始终以字节存储,即8位。这意味着1位始终未被使用。

UTF-8只是使用该额外位来表示非ASCII字符。

答案 2 :(得分:4)

Unicode向后兼容ASCII,因为ASCII是Unicode的子集。 Unicode只使用ASCII中的所有字符代码并添加更多。

尽管字符代码通常以Unicode格式写为0041,但字符代码为数字,因此0041与(十六进制)41的值相同。

UTF-8不是字符集,而是与Unicode一起使用的编码。它恰好与ASCII兼容,因为用于多字节编码的代码位于未使用的ASCII字符集部分。

请注意,它只是与Unicode和UTF-8兼容的7位ASCII字符集,基于ASCII的8位字符集,如IBM850和windows-1250,使用UTF字符集的部分-8具有多字节编码的代码。