一个挺奇怪的问题。为什么一个Oracle服务器,装在Linux上,在SSH客户端(我用SecureCRT)中执行SQLPlus 来访问。如果
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK
是能够显示中文的,但是
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8则是乱码。
检查数据库的字符集已经是UTF-8,总觉得什么地方不对。
NLS_CHARACTERSET AL32UTF8
后来发现,把SecureCRT的编码方式改为UTF-8即可正确显示:(下图中字符编码一项)
然后
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8
在SQLPlus中即可正确显示中文:
看来之前乱码并不产生在Oracle和客户端,因为数据库端和客户端他们的编码是一致的,都是UTF8. 只不过SecureCRT默认不支持UTF8, 所以乱码了;这仅仅是显示的问题。