MAC连接服务器oracle数据库中文乱码问题解决

最近入手实验室项目,数据库均使用oracle,但发现使用mac连接oracle时出现数据库内容乱码问题,即中文全部会变为????符号,使用win虚拟机连接时没有此问题。

搜索发现相关资料和解决方案博客非常少,网络上总的较为靠谱的解决方案大致为:

(注: 此方案并不有效

本地的编码模式与服务器编码模式不同导致乱码。因而在mac本地添加与服务器上oracle编码相同的环境变量NLS_LANG来解决

1.查看服务器oracle编码模式:
在Oracle中使用
Select userenv('language') from dual;
或者:
Select name, value$ from props$;
可查看NLS_LANG变量里保存的字符集

2.添加本地环境变量
在本机上
vi ~/.bash_profile
在其中添加变量:
export NLS_LANG=American_America.ZHS16GBK
之后
source ~/.bash_profile 保存

tips:输入env可查看本机环境变量,输入locale查看本机编码,输入local -a查看本机支持的编码种类

然而我此方法实践之后,保持了本地与服务器NLS_LANG字符集一致,但仍无效,依旧乱码。

我猜测可能是因为使用工具连接oracle,但由于工具传输解析没设置编码,因而导致了乱码。

我使用的连接工具为一款mac轻量级的oracle连接工具:SQLPro for Oracle
之后去下载了Navicat Premium,发现乱码问题果然解决!

这次竟然被工具坑了。
附上mac下 Navicat Premium下载地址:新云下载
或:史蒂芬周的博客

    原文作者:weberweber
    原文地址: https://www.jianshu.com/p/38b3aaf9204f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞