控制台输出乱码问题

之前utf-8输出控制台的, 只要用 "chcp 65001" 命令即可显示,突然发现显示的还是乱码。

后来发现是因为cmd控制台用了点阵字体,具体原因未知, 切换下字体即可。

详细操作步骤:

1 cmd.exe chcp 65001 

 

 2 字体选择consolas

 

 确定之后再运行程序即可。

另附代码改变本地字符集和字体 (c/c++)

1 #ifdef _WIN32
2     SetConsoleOutputCP(65001);
3     CONSOLE_FONT_INFOEX info = { 0 }; // 以下设置字体来支持中文显示。
4     info.cbSize = sizeof(info);
5     info.dwFontSize.Y = 16; // leave X as zero
6     info.FontWeight = FW_NORMAL;
7     wcscpy(info.FaceName, L"Consolas");
8     SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), NULL, &info);
9 #endif

以上就解决了当前问题。

posted @ 2020-03-12 10:56  BackSword  阅读(474)  评论(0编辑  收藏  举报