QT操作SQLITE数据库 插入中文字符乱码的问题

在学习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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值