navicat查询oracle内容中文字段显示为乱码

一、测试环境

客户端:navicat15版本

服务端:oracle11G版本

二、遇到的问题简述

1、工作环境上需要通过常用的比如navicat工具去连接服务端数据库的表或者视图。

2、输入服务端提供的用户名、密码、实例名等参数后可正常连接到表或视图。

3、查询表或视图也是成功输出数据的,但表或视图中的某些字段内容是中文,navicat输出确是显示为乱码。

三、原因分析

根据经验判断遇到类似中文显示为乱码的情况,绝大部分原因就是客户端与服务端的字符集不匹配所导致。因此就可以从字符集来排查解决问题。

四、网上其他解决方法(均未能解决)

1、有的说是navicat工具的oci版本问题,需要重新下载其他版本或者安装标准版本后路径指向oci路径;

2、有的说是需要安装ORACLE客户端来解决;

3、有的说是需要修改注册表下的字符集与ORACLE服务端字符集一致;

4、有的说的需要将字符集添加到系统环境变量;

5、有的说需要更改navicat工具的字符集(这个也是最开始就尝试过的方法),客户端字符集默认是自动。

在网上搜索大致会有以上几种解决方案,但我都挨个测试过后,仍然未能解决乱码问题。大家可以都分别试一试,也许大家所遇到的情况有所不同,或许哪一条就能够给解决掉也说不一定。

五、我的解决方法

1、查看一下服务端是用的什么字符集,如果此时能连上数据库,那直接通过相关语句查询一下即可。查询服务端字符集语句如下:

select * from nls_database_parameters;

select userenv('language') from dual;

2、我查询到服务端的字符集为:AMERICAN_AMERICA.US7ASCII,因此在客户端就需要选择与之匹配的字符集才行。

3、在这之前我已通过上边第四点里的所有方法都尝试未果。后来想了想可能问题还是出在navicat工具本身。原本navicat工具客户端字符集那儿默认是自动。如图:

4、根据服务端字符集情况进行对应着更改,最后设置为了下图的样子后问题得到解决。

 

1、本资源为网络收集整理,版权归原作者所有! 2、只做本地研究使用,产生一切后果责任自负! 3、若侵犯到您的权益,请联系本站,我们将及时处理! 4、侵权删帖/投稿等联系邮箱:362523664@qq.com!

评论0

网站仅展示部分课程资源,更多超500T资源,直接搜索后联系我们获取! 更多资源搜索
没有账号? 注册  忘记密码?