已经试过很多方法,改系统变量什么都已经试过了。

解决方案 »

  1.   

    这个应该就是ORACLE字符集不是中文的问题啊,你确定你改了字符集和WINDOWS的变量之后还是这样?
    你用的是ORACLE哪个版本?
    注册表中的HKEY_LOCAL_MACHINE--->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1(不同版本的Oracle显示的都不太一样,但都会包含home这个单词),找到“NLS_LANG”,查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”
    喃?
      

  2.   

    是数据库中本身存储的就是乱码,还是查询后显示乱码???
    cmd 命令行下进sqlplus 查看表中数据的中文是否乱码,如果不乱码,就是你用的工具本身问题,而不是数据库问题,先把这个分清楚
      

  3.   

    应该执行第三步就可以把。
    1.登陆plsql,执行sql语句,输出的中文标题显示成问号????;条件包含中文,则无数据输出
     输入sql语句select * from V$NLS_PARAMETERS查看字符集,查看第一行value值是否为简体中文
     2.进入注册表,依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->home(小编安装的是Oracle 11g,这里显示成KEY_OraDb11g_home1),找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    3. 如果以上设置都没有问题,那就要查看下环境变量的设置,查看是否有变量NLS_LANG,没有则新建该变量
     新建变量,设置变量名:NLS_LANG,变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,确定即可
     退出plsql,重新登陆plsql。输入sql语句,执行,中文标题终于正常显示,也有数据输出了
      

  4.   

    字符集问题
    在这种情况下,查询的字段里含有中文的,应该也不能正常显示
    SELECT VALUE FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET'
    查看数据库的字符集
    然后将本地的字符集改成一致的。(通过环境变量nls_lang或在注册表中修改)
      

  5.   


    在cmd中查看的注释也是乱码
      

  6.   


    查询的字段可以正常显示,仅仅是注释显示问号。nls_lang中都是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      

  7.   

    是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,主要是只有注释显示问号,其余正常
      

  8.   


    查询的字段可以正常显示,仅仅是注释显示问号。nls_lang中都是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    注释其实也是从数据字典中查询的
    SELECT t.column_name,t.comments
    FROM user_col_comments t
    WHERE t.table_name='大写表名'
    执行试试。如果其他表中的中文正常显示,而只有这里的查询结果中文显示异常。就说明是备注时由于字符集转换而产生乱码,需要重新备注