1.加命令行参数。
解决方案资源管理器中,右键点击项目,选择“属性”(Properties)。
转到 “配置属性” (Configuration Properties) -> “C/C++” -> “命令行” (Command Line)。
在 “附加选项” (Additional Options) 中添加以下编译选项:
/utf-8
2.把这两句加在头文件的开头。
#pragma once
#pragma execution_character_set("utf-8")
如果你没有用到自己写的头文件,把第二句加在源文件的开头,不用加第一句。
3.把文件保存成 UTF-8 带签名。
选中文件:在VS里切换到你要保存的文件(有中文的文件),此时标签高亮,如图。
选择“另存为”:点击菜单栏的 “文件” -> “另存为“。
选择“编码保存”:在弹出的“另存为”对话框中,找到“保存(S)”按钮。点旁边的箭头,然后选择 “编码保存(V)... ”。 选择UTF-8 带签名。
附录:
源码字符集:源代码文件(例如 .cpp
, .h
文件)在磁盘上实际保存时使用的字符编码方式。
执行字符集:指编译器在编译过程中,将源代码中的字符和字符串字面量转换成何种编码格式,并最终嵌入到生成的可执行文件(.exe
, .dll
)中。
/utf-8
这一句理论上能够
1.设置执行字符集为UTF-8,并且
2.告诉编译器,源文件是用UTF-8编码的。
但是我在自己的项目上面测试之后,发现必须另外加这两句,这两句的作用是设置执行字符集为UTF-8,和/utf-8的功能重复了,不清楚原因:
#pragma once
#pragma execution_character_set("utf-8")
参考文献: