编译器和链接器中的 Unicode 支持

更新:2007 年 11 月

本主题介绍 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

  • 输出
    在编译期间,编译器以 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 支持的编译器时。

请参见

其他资源

在命令行上生成