之前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
以上就解决了当前问题。