QT5读gbk编码的数据库(数据库比较老编码不能改)的时候,发现中文字段是乱码,比如数据库里数据是“中性点”,QT5显示是”���Ե�",实际上这是gbk编码的中文”中性点“在UTF-8上显示的内容,现在想怎么把这段乱码转换成utf-8的”中性点“三个汉字。QT5已经没有以下函数
QTextCodec::setCodecForTr(QTextCodec::codecRForName("GB18030"));
QTextCodec::setCodecForCString(QTextCodec::codecForLocal());
试了很多办法,都不能解决?求大侠门帮忙。
用函数:
QString::fromLocal8Bit();
.toLocal8Bit();
用宏
QStringLiteral();
你可以用label显示下汉字试试
估计这么久楼主已经解决了吧
在其他地方查到办法是在执行select之前执行一次query.clear()问题就解决了
具体原因我猜是query首次执行会根据数据库内容决定编码格式