可以强制CMake/MSVC对没有BOM的源文件使用UTF-8编码?C4819 [英] Possible to force CMake/MSVC to use UTF-8 encoding for source files without a BOM? C4819

查看:301
本文介绍了可以强制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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆