【问题标题】:Possible to force CMake/MSVC to use UTF-8 encoding for source files without a BOM? C4819可以强制 CMake/MSVC 对没有 BOM 的源文件使用 UTF-8 编码吗? C4819
【发布时间】:2018-05-21 07:26:40
【问题描述】:

我们所有的源代码都是有效的 UTF-8,但是 Windows 上的一些用户无法构建它们,因为他们的系统配置了不同的编码。

如果不向源文件添加BOM,是否可以告诉 MSVC 将所有源视为 UTF-8,而不考虑用户系统编码?

See MSDN's link regarding this topic(需要添加BOM表头)。

【问题讨论】:

    标签: visual-c++ utf-8 cmake character-encoding


    【解决方案1】:

    你可以试试:

    add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
    add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
    

    默认情况下,Visual Studio 会检测字节顺序标记以确定源文件是否采用编码的 Unicode 格式,例如 UTF-16 或 UTF-8。如果未找到字节顺序标记,则假定源文件使用当前用户代码页进行编码,除非您已使用 /utf-8/source-charset 选项指定了代码页。

    参考文献

    【讨论】:

    • 它不起作用,直到我发现这个命令必须在CMakeLists.txt文件中的add_executable()命令之前
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 2012-07-18
    • 2023-03-14
    • 2014-11-03
    • 1970-01-01
    • 2017-02-23
    相关资源
    最近更新 更多