描述:我的developer是英文版的(菜单都是英文的:))

1、select userenv('language') from dual;的结果为:SIMPLIFIED CHINESE_CHINA.UTF8
2、注册表的NLS_LANG的值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK在上述配置的情况下,我的查询结果,中文正常显示。
但是,我把注册表改为SIMPLIFIED CHINESE_CHINA.UTF8,查询结果乱码。二、
1、select userenv('language') from dual;的结果为:SIMPLIFIED CHINESE_CHINA.UTF8
2、注册表的NLS_LANG的值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
在上述配置的情况下,通过developer的菜单:file-->open-->sql script打开一个a.sql文件,该文件内容如下:comment on column FIN_ACCOUNTS_RECEIVABLE_MANAGE.PAYMENT_GATEWAY_ID
  is '支付网关ID';中文显示乱码。用editplus3打开该文件,可以看到它的编码为utf8。把editplus3中的文本拷贝到developer中,可以正常显示。

解决方案 »

  1.   

    我是用AMERICAN_AMERICA.UTF8的,完全可以解决中文的问题
      

  2.   

    NLS_LANG = language_territory.charset 
    它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
    其中: 
    Language: 指定服务器消息的语言, 影响提示信息是中文还是英文
    Territory: 指定服务器的日期和数字格式,
    Charset:  指定字符集。
    如:AMERICAN _ AMERICA. ZHS16GBK 
    从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。1、select userenv('language') from dual;的结果为:SIMPLIFIED CHINESE_CHINA.UTF8 
    -- 这个查询的是数据库的字符集2、注册表的NLS_LANG的值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 
    --NLS_LANG 是操作系统的环境变量, 如果说数据库是中文的,但是环境变量不是,那么查询出来也是乱码的。  UTF8 是支持的中文的, 至于楼主的为什么是乱码,可能是环境变量没有生效....Oracle 字符集的查看和修改
    http://blog.csdn.net/tianlesoftware/archive/2009/12/02/4915223.aspx
    ------------------------------------------------------------------------------
    Blog: http://blog.csdn.net/tianlesoftware
    网上资源: http://tianlesoftware.download.csdn.net
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
    Q Q 群:62697716