qt是跨平台的开发平台。他的编译器是要手动配置的,在window下一般我们用virtual stuido中cl,或者Mingw中的g++
在linux中一般采用Linux下的g++
而 微软VS的中的cl,Mingw中的g++,Linux下的g++),源代码分别采用 GBK 和 不带BOM的UTF-8 以及 带BOM的UTF-8 这3中编码进行保存。
也就是说编译器的编码方式是不同的,所以大部分情况我们在qt代码中写中文时就会有乱码
网上搜索得出
这两段代码可以解决大部分的乱码问题。(记得加入#include<QTextCodec> 头文件引用)
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
其实上面的代码的意思是告诉编译器我们用什么样的编码方式来解读我们写的代码。 一般在使用微软的编译器 我们在main函数中
QApplicationa(argc,argv);之后加入QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));。
使用g++编译器我们使用QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
原文:http://www.cnblogs.com/Bonker/p/3617982.html