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

你可能感兴趣的:(qt读取oracle中文乱码,windows下Qt通过odbc连接Oracle中文乱码解决)