可以强制CMake/MSVC对没有BOM的源文件使用UTF-8编码?C4819 [英] Possible to force CMake/MSVC to use UTF-8 encoding for source files without a BOM? C4819
本文介绍了可以强制CMake/MSVC对没有BOM的源文件使用UTF-8编码?C4819的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们所有的源代码都是有效的UTF-8,但是Windows上的某些用户无法构建它们,因为他们的系统配置了不同的编码.
All our source code is valid UTF-8, however some users on Windows cannot build them because their system is configured for a different encoding.
如果不向源文件添加 BOM ,是否可以告诉MSVC处理所有源是UTF-8,而不考虑用户的系统编码是什么?
Without adding a BOM to source files, is it possible to tell MSVC to treat all source as UTF-8, irrespective of the users system encoding?
请参阅有关此主题的MSDN链接(需要添加BOM表头)
See MSDN's link regarding this topic (requires adding BOM header).
推荐答案
您可以尝试:
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
选项.
参考
这篇关于可以强制CMake/MSVC对没有BOM的源文件使用UTF-8编码?C4819的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文