最近在学习使用QT,但是过程中碰到了中文乱码的问题,在此将我找到的解决方法共享一下:
1.界面的中文乱码
当我们直接使用以下语句往树组件添加节点时,在显示的时候会出现乱码
QStandardItem *item = new QStandardItem(QString("例子"));
我们可以在主窗口初始化的时候调用以下语句:
//set codec
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
我们界面就能正常显示中文了。
2.SQLITE数据库数据取出并显示时出现的乱码
一开始我往数据库添加中文数据的时候是用了QString::fromUtf8("例子")进行描述的,但是取出来的数据在显示时还是乱码(我已经添加了第一步中的 //set codec 语句块)。后来发现其实也只要使用QString("例子")就可以了,不用担心编码的问题。