首先要保证三个点,客户端、操作系统、数据库的字符集保持一致的时候才能让数据库里面的中文正常显示。
1.查看数据,显示乱码
2.查看当前oracle用户字符集
select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
很明显这里是美国的编码,因为有AMERICAN
3.修改当前oracle用户的编码,客户端进入配置文件 vim .bash_profile
vim ~/.bash_profile
export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
:wq
source ~/.bash_profile
4.进入oracle查看字符集,发现已经是中文字符集了
5.这样已经保持客户端和oracle字符集一致为中文了,再将xshell的编码设为GBK,保持三端一致
6. 查看数据
乱码问题已经解决