一个cmake的项目系统,出现中文乱码
初学cmake,本来程序没有乱码,按教程下载扩展改成UTF-8编码,之后运行不知道怎么的中文就乱码了
以下是所作的更改
项目的属性如上图所示无法打开,改不了项目的属性
一个cmake的项目系统,出现中文乱码
初学cmake,本来程序没有乱码,按教程下载扩展改成UTF-8编码,之后运行不知道怎么的中文就乱码了
以下是所作的更改
别人的教程不见得就是正确的,建议自己理解清楚文件编码、控制台编码:
【文件编码】
ANSI(中文系统=GBK/GB2312)
UTF8不带BOM
UTF8带BOM
【控制台编码】
默认:ANSI
chcp 65001 命令可设置控制台编码为UTF8
SetConsoleOutputCP(65001) 可设置控制台编码为UTF8
WriteConsoleW 以宽字符输出,无论控制台编码是啥,都能正常打印中文
【编码转换】
WideCharToMultiByte
MultiByteToWideChar
【正确做法】
文件保存UTF8的,用MultiByteToWideChar转换,再用WriteConsoleW打印输出
(可以封装一下函数,例如实现printf_utf8,然后#define printf printf_utf8,这样替换函数方便写代码)
或着
你自己理解清楚编码,让文件和打印输出保持一致的编码就行。