【发布时间】: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
我们所有的源代码都是有效的 UTF-8,但是 Windows 上的一些用户无法构建它们,因为他们的系统配置了不同的编码。
如果不向源文件添加BOM,是否可以告诉 MSVC 将所有源视为 UTF-8,而不考虑用户系统编码?
See MSDN's link regarding this topic(需要添加BOM表头)。
【问题讨论】:
标签: visual-c++ utf-8 cmake character-encoding
你可以试试:
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()命令之前