Qt读取sqllite乱码,转换编码也没用
这个数据库我用SQLiteSpy查看时,有些中文正常,但有些中文是乱码的。然后用Qt去读取的时候,怎么转换都不能把乱码变成正常。给我这个数据库的人说,是因为以前写入的时候有些是gbk字符,有些是utf-8,所以会这样。。可我试了网上的那些编码转换函数,都没有作用。希望大家帮帮忙。
我用的代码如下:
#include <QtCore/QCoreApplication>#include <QTextCodec>#include <Qtsql/QSqlDatabase>#include <Qtsql/QSqlError>#include <Qtsql/QSqlQuery>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QSqlDatabase *SqliteDb; SqliteDb = new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE","SqliteDb")); SqliteDb->setDatabaseName("files.db"); SqliteDb->open(); QString SqlText = "SELECT FileName,Title FROM files" ; qDebug(SqlText.toAscii()); QSqlQuery Query(*SqliteDb); bool Result = Query.exec(SqlText); if (!Result) { qCritical("SqliteDB Query Failed:%s",SqlText.toAscii().constData()); }; QString tmp, tmp2; while(Query.next()) { tmp = Query.value(0).toString(); tmp2 = Query.value(1).toString(); qDebug(tmp.toAscii().data()); qDebug(tmp2.toAscii().data()); } return a.exec();}