utf-8无bom编码的源文件中文乱码
MSVC对于UTF-8 without BOM格式支持不好,这个问题由来已久,在VS2015之前的版本一直存在。
在VS2015版本(Visual Studio 2015 Update 2),增加一个编译选项/utf-8,
该编译选项的作用就是将源码字符集和执行文件字符集指定为UTF-8。增加该编译选项后,再重新编译运行,程序正确输出中文,问题解决。右击工程"属性" -> “C/C++” -> “所有选项” -> “附加选项"中添加”/utf-8"。
或通过cmake中自动设置,参考:CMake学习(4)—— 使用技巧
utf-8中文在控制台显示乱码
在Visual Studio 20xx中,如果源码文件是UTF8编码,要打印中文到控制台时,控制台会显示乱码,可以进行以下设置。
- 包含
<Windows.h>头文件。 - 在
main函数初始调用SetConsoleOutputCP(CP_UTF8)设置控制台输出字符集为UTF8编码。
#include <Windows.h>
int main(int argc, char* argv[])
{
SetConsoleOutputCP(CP_UTF8);
return 0;
}
本文介绍了在Visual Studio 2015及其更新版本中,如何解决UTF-8无BOM编码下源文件中文乱码的问题,以及在控制台输出UTF-8编码中文的方法。通过添加/utf-8编译选项和设置控制台输出字符集为UTF-8,可以有效解决中文乱码问题。
799

被折叠的 条评论
为什么被折叠?



