解决方案 »

  1.   

    检查
    1.客户端环境变量nls_lang
    2.服务器数据库nls_lang
    两个是否对应
    查询语句: select userenv(’language’) from dual
      

  2.   

    windows上最好用gbk字符集,例如 NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    而Linux本地使用utf8字符集,例如NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8
      

  3.   

    我出现这个原因是我的oracle客户端字符集是SIMPLIFIED CHINESE_CHINA.UTF8 我启动了plsql之后出现一个页面意思是字符集不一致的问题(其实不用理会 点击确定就行了)但是我打开注册表 修改了NLS_LANG的值 改成了SIMPLIFIED CHINESE_CHINA.UTF8  然后打开CMD sqlplus就乱码了 修复方法如下(我就是这么修复的):
    运行regedit打开注册表
    按如下顺序找
    HKEY_LOCL_MACHINE>>SOFTWARE>>ORALCE(如果在SOFTWARE下面找不到ORACLE就去Wow6432Node下面找 )>>KEY_ORADB11G_HOME1
    NLS_LANG的值设置为SIMPLIFIED CHINESE_CHINA.ZHS16GBK 即可  
      

  4.   

    检查下客户端与服务器数据库端环境变量nls_lang的设置
      

  5.   

    改成ZHS16GBK ,WINDOWS默认的编码是GBK
      

  6.   

    应该是字符集的问题
    开始-运行-输入regedit-回车进入注册表,依次单击HKEY_LOCAL_MACHINE--->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1,找到“NLS_LANG”,查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,如果不是就将它设为“SIMPLIFIEDCHINESE_CHINA.ZHS16GBK。”
    设置完注册表后,接下来设置我们的环境变量,计算机(右键) --->属性--->高级系统设置--->高级--->环境变量--->新建,个人建议新建用户变量,变量名输入:“NLS_LANG”,变量值输入:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”。确定即可。