为什么最新的操作系统使用 Unicode 而不是 ASCII?
答案1
因为它提供了当前使用的所有字符的简单统一映射,而无需切换代码页。此外,您可能指的是 EASCII 或 ANSI(或其他具有 256 个字符的衍生代码)。
举个例子:以前,在同一系统上使用俄语和捷克语是不可能的(即没有 Unicode),因为代码页会发生冲突。因此,文件名(以及其他对象)会根据当前选择的代码页显示不正确。
Unicode 缓解了这个问题并增加了一些其他概念。对于全面而全面的概述,我推荐 O'Reilly 的“Unicode 解释”。此外,它是由一位关心国际化的人编写的,即使是现在,许多以英语为母语的人也做不到这一点,因为 ASCII(0..127)可用于覆盖所有英语句子,并且不存在代码页问题,即使使用 EASCII,只要您坚持使用纯拉丁字符。
虽然实现方式不同(Debian 使用 UTF-8,而较新的 Windows 使用 UTF-16,较旧的基于 NT 的 Windows 使用 UCS-2,它是 UTF-16 的一个子集),但 Unicode 消除了代码页施加的所有限制,即这使用它的致命论据。
如果您对编程感兴趣,请看一下 ICU。
答案2
简短回答:因为 Unicode 比 ASCII 支持的字符更多。
从维基百科:
Unicode 旨在满足对可行、可靠的全球文本编码的需求。Unicode 可以粗略地描述为“宽体 ASCII”,它已扩展到 16 位,以涵盖世界上所有现存语言的字符。在经过适当设计的情况下,每个字符 16 位足以满足此目的。
答案3
UTF-8 的设计从一开始就考虑到了向后兼容 ASCII。任何 7 位 ASCII 系统都会立即变成基本的 UTF-8 系统(尽管不一定能处理超过 127 个基本 ASCII 字符)。
UTF-8 扩展了 ASCII 系统,允许将多个字节组合在一起组成一个字符。这使得计算机能够处理数十万个不同的字符 - 其目的是能够将所有语言的所有字母表的所有字符放在一个大字符表中。
http://en.wikipedia.org/wiki/UTF-8详细解释了这一切是如何运作的。