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

相关推荐
zgl_200537794 小时前
源代码:跨数据库通用SQL语法解析与标注拆解
大数据·数据库·数据仓库·sql·etl·源代码管理
雪度娃娃5 小时前
存储器层次结构——磁盘硬盘存储
服务器·网络·数据库·计算机组成原理
暴力求解5 小时前
Mysql数据库基础
数据库·mysql·操作系统
意倾城5 小时前
MySQL最左前缀匹配原则
数据库·mysql
暴躁小师兄数据学院6 小时前
【AI大数据工程师特训笔记】第13讲:数据库性能手术刀
大数据·数据库·数据仓库·sql·postgresql
步十人6 小时前
【Redis】持久化机制
数据库·redis·缓存
Quincy_Freak7 小时前
银河麒麟aarch64如何高效做数据分析?分享一款内网离线数据分析利器
大数据·数据库·数据挖掘·数据分析·aarch64
香气袭人知骤暖7 小时前
PG数据库 Docker 容器自动备份方案
数据库·docker·容器
me8328 小时前
【Linux】Linux 目录命名规范溯源(Linux各个目录究竟是干嘛的)
linux·运维·数据库
土狗TuGou8 小时前
SQL内功笔记 · 第2篇:列的约束
数据库·笔记·sql