为什么Windows使用ANSI代码页面而不是UNICODE



当我在cmd.exe窗口中运行命令chcp时,它表示Windows中使用的代码页。

我认为Windows使用UNICODE字符集。

所以,我的问题是:

  1. 为什么Windows使用ANSI代码页而不是Unicode?

  2. Windows 使用 UTF-16 还是 UCS-2?我可以检查这一点(通过命令或 MSDN 链接)吗?

  3. UTF-16 或 UCS-2 只是一种编码? 还是字符集?

  4. UTF-8、
  5. UTF-16、UTF-32 等,它们有不同的字符集大小吗?

我很困惑。 请有人定义它们。

  1. 历史原因和向后兼容性。 Windows本身是一个基于Unicode的操作系统,从NT时代开始就一直存在。 但是许多遗留(甚至当前)应用程序不是为 Unicode 编写的。 启用 Unicode 的应用不使用 ANSI 代码页,除非它们需要在 ANSI 和 Unicode 之间转换运行时数据。

  2. Microsoft在Windows 2000中切换到UTF-16。 在此之前,它使用UCS-2。 请参阅 Microsoft Windows 中的 Unicode。

  3. UTF-16 和 UCS-2 都只是同一 Unicode 字符集的编码。 UTF-16 的发明是为了支持 U+FFFF 以上的编码代码点,UCS-2 无法处理这些代码点。

  4. 所有 UTF
  5. (包括许多您尚未命名的 UTF)都只是同一 Unicode 字符集的编码。名称中指定的数字是编码代码单元中使用的位数(UTF-8 使用 8 位代码单元,UTF-16 使用 16 位代码单元等)。

最新更新