本人菜鸟一个,从公司exp导出表的时候控制台就显示乱码,今天cmd 输入sqlplus中文就显示乱码,我自己电脑上装的是oracle11g,以前没出现过这个问题

解决方案 »

  1.   

    解决方法:
    1.在数据库服务器主机上面,使用sqlplus或plsql/devloper工具链接到数据库,执行查询
      select sys_context('userenv','language') from dual;
    2.拷贝上面的结果到你执行exp命令的客户机上,在cmd窗口中,执行
       SET NLS_LANG=上面拷贝的结果
       (上面的SET环境变量是windows的用法,在大多数UNIX或LINUX下使用export NLS_LANG=上面拷贝的结果)
    3.如果还是不对,
      则只拷贝'上面拷贝的结果'中,点号后面的部分(例如,结果可能为SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
      表示字符集(ZHS16GBK)。把点号前面的地区和语言编码改变一下,只保留字符集。例如可以将SIMPLIFIED CHINESE_CHINA.ZHS16GBK改成AMERICAN_AMERICA.ZHS16GBK),反过来也一样,总有一个地区和语言跟你的操作系统一致。建议你先查询确认你的操作系统所设置的地区和语言。
      

  2.   

    这个是由于os编码和数据库字符集编码不同而导致的吧,我之前的项目也就遇到过一次,开始还一直以为是jsp组件的编码问题呢,哪知在插入数据库时就已经乱码了