oracle sqlplus汉字乱码

Oracle sqlplus Chinese characters garbled

  1. 我运行在 CentOS 上用 oracle 数据库 11g 进行了一个简单的查询,但是我得到了错误的字符集。
SQL> select col_name from table_name where rownum <= 1;

col_name 
--------------------------------------------------------------------------------
¸ñ귎Ϊʯҩ¼¯΅mRNAт¹ےࠃ萮Ŀ802³µ¼乄լ¾»»¯ůͨ¹¤³̡£
  1. 我得到数据库CHARACTER SET如下
SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
  1. 将字符集设置为客户端
    echo 'export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"'>>/etc/profile && source /etc/profile
  2. 重新运行查询SQL,但也有问题,我该如何解决。

使用 locale charmapecho $LANG 检查您的终端设置并验证它是否与 ZHS16GBK 匹配。

不需要使用与您的数据库相同的字符集。在您的终端中使用 NLS_LANG=AMERICAN_AMERICA.AL32UTF8 和 UTF-8 也可以。 NLS_LANG 与您的终端字符集匹配很重要。

另见