QT使用时遇到的乱码问题解决方法

时间:2021-03-14 00:18:32

最近在使用qt写一个操作数据库的应用。


遇到的最烦的问题就是,控制台中文输出乱码,以及将字段插入数据库的Table后,竟然是乱码,WTF?!


去网上搜了一下方法,方法有很多,但都没决绝乱码的问题。


于是想办法,在已有解决方法的基础上改了几句,解决了问题。


网上的方法有:修改项目里面的编码,修改编辑里面的编码,有的说GBK、GB1312、UTF-8,还有system,说法各异。
还有的说是加上“万能的”的三行:#include <QtCore/QTextCodec>
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));


我的方法如下:


1.在main函数里面加上两行代码
    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());//1
    QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());//2
第一行适用 QObject::tr("中文");
第二行适用于一般的"中文" 与 QString("中文")、;

2.修改系统的编码,保险起见,可以全部改成system
修改的地方有三处:

第一处:工具->选项->文本编辑器->行为
第二处:项目->Editor->编辑器设置(自定义)->system
第三处:先选中点击代码编辑区域(光标浮动在代码上)->左上角 编辑->选择编码->system保存->system载入

最后一步,rebuild一下工程。


除了控制台乱码,还有程序输出乱码,程序里输入不了中文(输入法打不了字)以及用qt写UI界面的控件是,中文乱码现象,这些问题都能解决了。