操作系统:RHEL5.4   Oracle版本:10.2.0 
客户端NLS_LANG编码如下:
[oracle@supertiger ~]$ echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
执行locale查看系统编码如下:
[oracle@supertiger ~]$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
数据库字符集如下:PARAMETER            VALUE
-------------------- --------------------
NLS_CHARACTERSET     ZHS16GBK1、上述系统环境下使用sqlplus登录数据库,提示符“connect to / 连接到”的地方出现???乱码,如下所示:
Enter user-name: system
Enter password: ???: 
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options2、登录数据库成功后查询数据库表中记录,中文记录出现乱码如下所示:
SQL> select * from gb_fkfs;DM MC                                       SRM
-- ---------------------------------------- ----
1  ????????(??????????)                     sb
2  ????                                     sybx
3  ????                                     zfyl
4  ????                                     gfyl
5  ????                                     dbtc
6  ??                                       qt???6??
请问上述乱码问题如何解决??最好能说明一下产生乱码的原因!呵呵,近两天在网上参考了好些资料把头看晕了得!!!谢谢了,请帮忙解答下

解决方案 »

  1.   

    我看了你客户端和服务器端的字符集都一样了,应该不存在上述问题了吧。
    你在试试在你登陆用户的.profile文件里面加上NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport NLS_LANG
      

  2.   

    export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
    sqlplus / as sysdba试试看。
      

  3.   

    你的服务器端和NLS_LANG的设置都是ZHS16GBK
    因此从服务器向客户端发送数据时不会进行相应的字符转换
    但是你OS的字符集是UTF8 显示上也许会有问题你可以尝试把客户端NLS_LANG设置为AMERICAN_AMERICA.UTF8
    再试试看
      

  4.   

    兄弟们上述方法设置之后还是均为乱码啊
    设成export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 这样之后乱码变成了如下所示:
    SQL*Plus: Release 10.2.0.1.0 - Production on ������ 2�� 7 00:02:46 2010Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    ���ӵ�: 
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
      

  5.   

    改为UTF8后是怎么显示出来的?
    是乱码还是问号
      

  6.   

    你如果是用的secureCRT软件的话,那么就是设置的问题了,你可以在optios(字符)——session options下的terminal(终端)下的education(仿真)中把terminal(终端)一栏改为‘linux’把appearance(外观)——character encoding(字符编码)一栏,选择default,normal fonts(字体)选择新宋体,应该是没问题的!
    如果不是,就是字符设置的问题!上面看来,很显然中文乱码,是不支持中文的!
      

  7.   

    export NLS_LANG=american_america.AL32UTF8