最近公司的项目准备由自写与MFC的混合控件转型到Qt,在做demo的过程中发现Qt在代码中设置的按钮文本显示出来却是乱码,就想Qt是unicode的,然后就把项目属性中的字符集改成unicode并把源码的文本格式改为utf8,然后问题来了,原来项目中一些涉及字符转换的都报错了,对于项目编码与源代码文本编码任然没有彻底搞懂,无奈只有改回多字节。关于编码还希望有人能指点一下。
先解决问题,可以将Qt的编码设置为当前系统编码,就可以解决乱码的问题(先感谢一下博主:http://blog.sina.com.cn/s/articlelist_2801495241_0_1.html):
#include "test.h"
#include
#include
int main(int argc, char *argv[])
{
QTextCodec *m_pTextcodec=QTextCodec::codecForName("System";);//获取系统编码
QTextCodec::setCodecForCStrings(m_pTextcodec); //设置字符常量、QByteArray构造QString对象时使用的编码方式
QTextCodec::setCodecForLocale(m_pTextcodec);//设置对本地文件系统读写时候的默认编码格式
QTextCodec::setCodecForTr(m_pTextcodec);//设置传给tr函数时的默认字符串编码
QApplication a(argc, argv);
test w;
w.show();
return a.exec();
}