[Qt]QString 与Sqlite3 字符串互动[汉字不乱码]

环境:

Qt C++(msvc c++)

1.将与数据库交互的代码文件编码转换为utf-8-bom编码,(可使用notepad ++进行转换)

2.在代码文件头文件中加上下面代码。

cpp 复制代码
//vs2010 版本是 1600
#if defined(_MSC_VER) && (_MSC_VER >= 1600 )    
#pragma execution_character_set("utf-8")    
#endif

3.从数据库检索的汉字处理

直接使用QString(azResult[i*ncolumn+1]) 这样编码不会乱码显示

4.向数据库写入汉字

cpp 复制代码
char **zErrMsg = 0 ;

QString sql = QString("INSERT INTO ParamGroup (GroupNum,[Group],GroupLv)  VALUES('%1' ,'%2','%3')").arg("8").arg("驱动器参数").arg("0");

int rc = sqlite_exec(db, sql.toUtf8().data(), NULL,NULL, zErrMsg ) ;

if(rc == SQLITE_OK){
    sqlite3_free( zErrMsg  );
    return false;
}

return true;

注:这里的 [Group]使用了方括号是因为 Group 在sql中是个关键字?!。

相关推荐
一叶飘零_sweeeet6 小时前
从 MySQL 到 TiDB:分布式数据库的无缝迁移与实战指南
数据库·mysql·tidb
axban7 小时前
QT M/V架构开发实战:QStandardItemModel介绍
开发语言·数据库·qt
没学上了7 小时前
数据库建立库-Qt
数据库
我是zxb7 小时前
EasyExcel:快速读写Excel的工具类
数据库·oracle·excel
代码不停8 小时前
MySQL联合查询
java·数据库·mysql
沐浴露z8 小时前
Redis内存回收:过期策略与淘汰策略
数据库·redis·缓存
宴之敖者、8 小时前
MySQL——数据库基础
数据库·mysql
张3蜂8 小时前
MongoDB BI Connector 详细介绍与使用指南(手动安装方式,CentOS 7 + MongoDB 5.0.5)
数据库·mongodb·centos
春时似衿里8 小时前
jmeter配置数据库连接步骤
数据库·jmeter
喵喵爱自由9 小时前
Ubuntu 24.04 Server 版系统安装及配置
数据库·ubuntu