错误现象:

在windows下用其他工具访问oracle,确认中文正常显示。在Linux下使用sqlplus查询数据表中文内容出现乱码。

分析及解决:

因为windows下正常,所以问题应出现在Linux客户端。用下列sql查询数据库字符集为“ZHS16GBK”:

 
  1. SELECT * FROM nls_database_parameters t 
  2. WHERE t.parameter = 'NLS_CHARACTERSET'

 设置环境变量NLS_LANG,问题解决。

 
  1. export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" 

其他:

export LANG="zh_CN.GB18030" 可解决Linux显示中文文件名的问题。

rpm -aq | grep fonts-chinese 用于查看Linux是否安装中文字体。