Unicode 和 MBCS
Microsoft 基础类 (MFC) 库、适用于 Visual C++ 的 C 运行时库和 Visual C++ 开发环境的实现是为了帮助用户进行国际化编程。 这些映像具有以下特性:
支持 Windows 上的 Unicode 标准。 Unicode 是最新的标准,应该尽可能使用它。
Unicode 是一种 16 位字符编码,为所有语言提供足够的编码。 所有 ASCII 字符都作为加宽的字符包含在 Unicode 中。
在所有平台上支持一种称为双字节字符集 (DBCS) 的多字节字符集 (MBCS) 形式。
DBCS 字符由 1 或 2 个字节组成。 一些字节的范围被留作前导字节使用。 前导字节指定它和后面的尾字节组成一个 2 字节宽的字符。 必须跟踪哪些字节是前导字节。 在特定的多字节字符集中,前导字节位于某个范围内,尾字节也是如此。 当这两种范围重叠时,可能需要计算上下文以确定某个给定的字节是用作前导字节还是尾字节。
支持简化为国际市场编写的应用程序的 MBCS 编程的工具。
在支持 MBCS 的 Windows 操作系统版本上运行时,Visual C++ 开发系统(包括集成的源代码编辑器、调试程序和命令行工具)完全支持 MBCS。 有关详细信息,请参阅 Visual C++ 中的 MBCS 支持。
注意
在本文档中,MBCS 用于描述所有对多字节字符的非 Unicode 支持。 在 Visual C++ 中,MBCS 始终表示 DBCS。 不支持宽度大于 2 个字节的字符集。
根据定义,ASCII 字符集是所有多字节字符集的子集。 在许多多字节字符集中,0x00 - 0x7F 范围内的每个字符都与 ASCII 字符集中具有相同值的字符相同。 例如,在 ASCII 和 MBCS 字符串中,单字节空字符(“\0”)的值为 0x00,指示终止空字符。