qt creator 5.0.2 新建纯C项目(非Qt项目),中文输出为乱码,是怎么回事呢?
字符集问题:windows默认的是GBK 字符集,而Qtcreator编辑器的默认字符集是UTF-8,所以毫无疑问会输出乱码。
字符集之间转换:LPSTR LPWSTR
LPWSTR转变成LPSTR
LPTSTR pp =L"i am a strudent";
LPSTR p =newCHAR[100];
WideCharToMultiByte(CP_ACP, 0, pp, -1, p, 100, NULL, NULL);
输出:p ="i am a strudent";
LPSTR转变成LPWSTR
LPWSTR pp =newTCHAR[100];
LPSTR p ="i am a strudent";
MultiByteToWideChar(CP_ACP, 0, p, -1, pp, 100);
输出:pp ="i am a strudent";
备注:WideCharToMultiByte与MultiByteToWideChar中第6个参数设置为零时,则不进行转换,而直接返回出对应转换所需要的存储区大小。故而实际使用中常如下:
LPSTR p ="i am a strudent";
intmm = MultiByteToWideChar(CP_ACP, 0, p, -1, NULL, 0);
LPWSTR pp =newTCHAR[mm];
MultiByteToWideChar(CP_ACP, 0, p, -1, pp, mm);
delete[] pp;
最简单的方式是改qtcreator的字符编码
然后重新创建项目 和文件,或者使用其它可转码的编辑器转码后把项目文件再拷回来。