在学习QT的过程中,在sqlite数据库中插入中文乱码的问题,用下面方法最简单有效,即QString::fromLocal8Bit,就可以解决现实乱码的问题。
qt fromLocal8Bit()函数可以设置编码。
QT默认的编码是unicode,不能显示中文的
windows默认使用(GBK/GB2312/GB18030)
使用fromLocal8Bit()函数,实现了从本地字符集GB到Unicode的转换,用于处理汉语显示乱码等问题
static inline QString fromLocal8Bit(const QByteArray &str);该函数返回的是String类型的数
query.exec(QString::fromLocal8Bit("insert into automobile values( 2, '四轮','轿车','富康',rand() % 100 ,123,123,123,123,123)"));
75
#include <QtWidgets/QApplication>
2 #include <QtCore>
3 #include <QTextCodec>
4 #include <QSqlDatabase>
5 #include <QMessageBox>
6 #include <QSqlQuery>
7 #include <QTime>
8 #include <QSqlError>
9 #include <QSqlDriver>
10 #include <QSqlRecord>
11 #include <QtDebug>
12
13
14 int main(int argc, char *argv[])
15 {
16 QApplication a(argc, argv);
17
18 QFile::remove("qtDB.db"); //it's very necessary to testing many times!
19
20 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
21 db.setHostName("easybook-3313b0"); //设置数据库主机名
22 db.setDatabaseName("qtDB.db"); //设置数据库名,setHostName/setDatabaseName/setUserName/setPassword是非必须的
23 //因为在Qt中,由于QSQLI