C/C++用wprintf输出中文乱码解决方法

方法一:
程序开始时先调用setlocale()
setlocale(LC_ALL, "chs");    //参数"chs"表示是中文
方法二:
不用wprintf()使用WriteConsoleW()替代
WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), L"中文中文", 4, 0, 0);

另外有种常遇到的乱码是UTF8输出时乱码

这种情况导致的乱码可以使用先调用system("chcp 65001")或SetConsoleCP(65001)来解决,不过这会导致非UTF8的内容输出时乱码。所以想要两者共存可以先将utf8转换成ANSI或UNICODE或反向转换保持一致。另外输出前总是先切换代码应该也行,但未测试过


版权声明:本文为liuhua1982原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。