环境:1.win2003server+oracle9i
      2.oracle9i字符集为AMERICAN_AMERICA.WE8ISO8859P1
      3.oracle sql developer版本 1.5.5现象描述: 1.在sql developer 中查询oracle中的某个表,中文全部显示为乱码。
          2.在sql plus中查询同样的表,中文显示正确。
          3.在powerbulider开发工具中查询同样的表,中文显示也正确。
          4.环境变量中设置了nls_lang=AMERICAN_AMERICA.WE8ISO8859P1
          5.在sqlplus、pb、sql developer三个程序执行select * from v$nls_parameters ;
            三个查询显示的各个参数的值完全一样。
          6.将sql developer 中的字体改为宋体,显示也为乱码。
实在找不出原因了,帮帮忙吧!

解决方案 »

  1.   

    sql developer 中首选项,有一个选项中有一个允许 UNICODE 试一试看
      

  2.   

    我在首选项中没找到允许 UNICODE ,能具体说一下在什么位置吗?
      

  3.   

    LZ     oracle9i字符集为什么不使用utf8呢?
      

  4.   

    数据库字符集用16gbk
    国家区域字符集用utf-8
      

  5.   

    历史遗留原因只能用AMERICAN_AMERICA.WE8ISO8859P1 ,关键是在sqlplus和pb中显示都正常,只是在sql developer 中显示乱码
      

  6.   

    WE8ISO8859P1本身是不支持中文的
    但是有例外的情况:
    服务端设置为WE8ISO8859P1,客户端也设置为WE8ISO8859P1就OK了.
    客户端编码设置的方法:
    进入注册表regedit->MATCHINE->SOFTWARE->ORACLE下有个NLS_LANG,设置和数据库字符集一样就OK了.但是这样的话有一个问题,就是你存在数据库的字符集是客户端应用的字符集,而不是WE8ISO8859P1翻译成中文的字符集.第二个方法是重新创建数据库.设置为ZHS16GBK 或者AL32UTF8或UTF8
    客户端一样.
      

  7.   

    1、服务端、客户端都设置为WE8ISO8859P1
    2、nls_lang下都设设置了
    3.在客户端软件中,vs2005、pb90、sqlplus连接数据库,取出的数据都是中文的,4、只有在oracle sql developer中连接后,取出的数据不对。所以原因应该是在oracle sql developer的设置中有不对的地方或者特殊的地方实在都没办法了,只有不用这个工具了
      

  8.   

    oracle sql developer 要内存的命,还是用PL/Sql
      

  9.   

    http://blog.csdn.net/inthirties/archive/2009/10/26/4727342.aspx
      

  10.   

    请问楼主用的ORACLE SQL DEVELOPER是在LINUX下用的吗???这个软件菜单显示也是乱码吗???若是在LINUX下和软件菜单中文也显示乱码并且查中文表是由于JDK不支持中文的原因。我也碰到过刚解决呢。。