qt creator 5.0.2 新建纯C项目(非Qt项目),中文输出为乱码,是怎么回事呢?

 我来答
百度网友75967b7
2013-05-16 · TA获得超过1229个赞
知道小有建树答主
回答量:467
采纳率:100%
帮助的人:540万
展开全部

字符集问题: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的字符编码

然后重新创建项目 和文件,或者使用其它可转码的编辑器转码后把项目文件再拷回来。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式