oracle sqlplus汉字乱码
Oracle sqlplus Chinese characters garbled
- 我运行在 CentOS 上用 oracle 数据库 11g 进行了一个简单的查询,但是我得到了错误的字符集。
SQL> select col_name from table_name where rownum <= 1;
col_name
--------------------------------------------------------------------------------
¸ñ귎Ϊʯҩ¼¯΅mRNAт¹ےࠃ萮Ŀ802³µ¼乄լ¾»»¯ůͨ¹¤³̡£
- 我得到数据库CHARACTER SET如下
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
- 将字符集设置为客户端
echo 'export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"'>>/etc/profile && source /etc/profile
- 重新运行查询SQL,但也有问题,我该如何解决。
使用 locale charmap
或 echo $LANG
检查您的终端设置并验证它是否与 ZHS16GBK
匹配。
不需要使用与您的数据库相同的字符集。在您的终端中使用 NLS_LANG=AMERICAN_AMERICA.AL32UTF8
和 UTF-8 也可以。 NLS_LANG
与您的终端字符集匹配很重要。
另见
- 我运行在 CentOS 上用 oracle 数据库 11g 进行了一个简单的查询,但是我得到了错误的字符集。
SQL> select col_name from table_name where rownum <= 1;
col_name
--------------------------------------------------------------------------------
¸ñ귎Ϊʯҩ¼¯΅mRNAт¹ےࠃ萮Ŀ802³µ¼乄լ¾»»¯ůͨ¹¤³̡£
- 我得到数据库CHARACTER SET如下
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
- 将字符集设置为客户端
echo 'export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"'>>/etc/profile && source /etc/profile
- 重新运行查询SQL,但也有问题,我该如何解决。
使用 locale charmap
或 echo $LANG
检查您的终端设置并验证它是否与 ZHS16GBK
匹配。
不需要使用与您的数据库相同的字符集。在您的终端中使用 NLS_LANG=AMERICAN_AMERICA.AL32UTF8
和 UTF-8 也可以。 NLS_LANG
与您的终端字符集匹配很重要。
另见