qt读取oracle中文乱码,windows下Qt通过odbc连接Oracle中文乱码解决

1、问题

Qt使用odbc连接oracle数据库,如果字段中有中文数据,查询出来以后是乱码

2、环境

Qt5.8.0 + vs2015

Oracle11G 数据库编码格式ZHS16GBK(在windows下安装的数据库服务,即创建数据库的时候使用默认编码)

3、解决方法

(1) 方法一:修改注册表

regedit 打开注册表编辑,找到项目

HKEY_LOCAL_MACHINE -> SOFTWARE -> oracle -> KEY_OraClient11g_home1 -> NLS_LANG把原先的值 SIMPLIFIED CHINESE_CHINA.ZHS16GBK, 改为SIMPLIFIED CHINESE_CHINA.AL32UTF8。

Ps:修改注册表方法参照https://www.cnblogs.com/sundp/p/14155351.html修改实现。

(2) 方法二:使用QOCI驱动

编译QOCI驱动连接数据库,可以正常显示中文。

4、其他

(1) 其他方法:

修改odbc中的变量方法尝试过,但是未有效果,可能与qt版本或数据库配置有关,如果当前方法无效的可以进行尝试:参照https://blog.csdn.net/My__God/article/details/52984243?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-3&spm=1001.2101.3001.4242

(2) 查看数据库编码方法

打开plsql,执行sql:select userenv('language') from dual

标签:Qt,windows,数据库,odbc,乱码,修改,注册表,方法

来源: https://www.cnblogs.com/ll965452300/p/14421426.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值