我们所有的源代码都是有效的UTF-8,但是Windows上的一些用户无法构建它们,因为他们的系统配置为不同的编码。
在不向源文件添加BOM的情况下,是否可以告诉MSVC将所有源文件都视为UTF-8,而不管用户的系统编码?
See MSDN's link regarding this topic(需要添加BOM标题)。
我们所有的源代码都是有效的UTF-8,但是Windows上的一些用户无法构建它们,因为他们的系统配置为不同的编码。
在不向源文件添加BOM的情况下,是否可以告诉MSVC将所有源文件都视为UTF-8,而不管用户的系统编码?
See MSDN's link regarding this topic(需要添加BOM标题)。
3条答案
按热度按时间mnowg1ta1#
您可以尝试:
字符串
默认情况下,Visual Studio会检测字节顺序标记,以确定源文件是否为编码的Unicode格式,例如UTF-16或UTF-8。如果未找到字节顺序标记,则假定源文件是使用当前用户代码页编码的,除非您使用
/utf-8
或/source-charset
选项指定了代码页。参考文献
xxls0lw82#
如果您碰巧创建了跨平台代码来使用命令行开关解决问题,这意味着
字符串
或者在
CFLAGs
上添加/utf-8
或/source-charset
之类的东西可能意味着您也必须为其他平台做类似的事情。因此,如果可能的话,最好避免这个问题,而不是解决它,在字符串中使用
\uxxxx
而不是unicode字符:这样,源代码指定了要使用的unicode字符,但实际上并不包含它们。mnowg1ta3#
将
-DCMAKE_CXX_FLAGS="/utf-8" -DCMAKE_C_FLAGS="/utf-8"
添加到CMake命令行。