编译器和链接器中的 Unicode 支持
本主题介绍 Visual C++ 生成工具中的 Unicode 支持。
文件名
现在可以在命令行和编译器指令(如 #include)中指定的文件名中包含 Unicode 字符。 在 Visual C++ 的早期版本中,仅支持 ANSI 文件名。 在输出文件名中应避免非 ASCII 字符,以便可执行文件可在 Windows 98 和 Windows Me 的本地化版本上运行。源代码文件
现在,标识符、宏、字符串和字符文本以及注释中均支持 Unicode 字符。 现在也支持通用字符名称。可按以下编码格式将 Unicode 字符输入到源代码文件中:
具有或不具有字节顺序标记 (BOM) 的 UTF-16 Little Endian
具有或不具有 BOM 的 UTF-16 Big Endian
具有 BOM 的 UTF-8
Output
在编译期间,编译器以 UTF-16 格式将诊断输出到控制台。 可在控制台显示的字符由控制台窗口属性决定。 重定向到文件的编译器输出位于当前 ANSI 控制台代码页中。链接器响应文件和 .DEF 文件
响应文件和 DEF 文件可以是具有字节顺序标记的 UTF-16,也可以是 ANSI。 以前仅支持 ANSI。.asm 和 .cod 转储
默认情况下,.asm 和 .cod 转储为 ANSI 格式,以便兼容 MASM。 使用 /FAu 则输出 UTF-8。 请注意,如果指定 /FAs,则将只是直接输出混合源文件,而且可能会显示为乱码,例如,当源代码为 UTF-8 并且未指定 /FAsu 时。
可以通过选择合适的工具以及选择**“启用 Unicode 响应文件”**属性(默认为启用)在开发环境中启用 Unicode 文件名(请参见 如何:打开项目属性页)。 有些情况下需要更改此默认值,例如要修改开发环境以便使用不具有 Unicode 支持的编译器时。