首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Utf8与ascii兼容

为什么Utf8与ascii兼容
EN

Stack Overflow用户
提问于 2013-04-12 15:47:28
回答 3查看 8.3K关注 0票数 11

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

UTF-8如何向后兼容ASCII?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-12 15:52:28

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

UTF-8保留了这些精确的映射。在ASCII中由01101011表示的字符在UTF-8中也由相同的字节表示。所有其他字符都以多字节序列进行编码,其中每个字节都设置了最高位;也就是说,UTF-8中所有非ASCII码字符的每个字节都是1xxxxxxx格式。

票数 26
EN

Stack Overflow用户

发布于 2013-04-12 15:55:49

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

虽然字符代码通常在Unicode中写为0041,但字符代码是数字,因此0041与(十六进制) 41是相同的值。

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

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

票数 7
EN

Stack Overflow用户

发布于 2013-04-12 15:53:05

原因:

因为一切都已经是ASCII格式,并且具有向后兼容的Unicode格式,所以采用起来容易得多。将程序转换为使用UTF-8比转换为UTF-16容易得多,而且该程序继承了向后兼容的特性,仍然使用ASCII。

方法:

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15965811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档