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

上一篇:SQLYOG 导入excel数据文件失败 [Microsoft][ODBC Excel Driver]


下一篇:SQLSERVER链接到ORACLE失败,错误7302