[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(azResulti\*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中是个关键字?!。

相关推荐
我是大猴子18 小时前
redis
数据库·redis·缓存
苏宸啊20 小时前
MySQL(一)
数据库·mysql
2603_9696948521 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
这个DBA有点耶21 小时前
库内语义构建 vs 外挂向量库:业务语义缺失,才是RAG“胡说八道”的根源
数据库·mysql·aigc
kobe_OKOK_1 天前
mysql 开启 binlog 日志
数据库·mysql
鸽芷咕1 天前
KingbaseES 调参先看执行计划,参数是答案不是起点
数据库
这个DBA有点耶1 天前
MySQL 8.0直方图:统计信息升级了,执行计划为什么还是选错?
数据库·mysql·代码规范
老纪的技术唠嗑局1 天前
把 seekdb 塞进 iOS App:让混合检索嵌入手机
数据库
ClouGence1 天前
开源数据库管理工具 CloudDM 新版本发布,支持 OpenSearch、IoTDB 数据源
数据库·开源
徐小黑ACG1 天前
Redis-基础
数据库·redis·缓存