4

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

我认为 Windows 使用 UNICODE 字符集。

所以,我的问题是:

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

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

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

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

我很混乱。请有人定义它们。

4

1 回答 1

6
  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(包括许多您未命名的)都只是相同 Unicode 字符集的编码。名称中指定的数字是编码代码单元中使用的位数(UTF-8 使用 8 位代码单元,UTF-16 使用 16 位代码单元等)。

于 2017-10-11T21:04:54.890 回答