• 解决Sql Plus乱码的曲折历程


    在windows 2003上使用Sql Plus产生中文乱码,查阅有关资料显示是Sql Plus的字符集和Oracle服务器使用的字符集不匹配。


    设置客户端与服务器端统一字符集

    于是依次查询windows编码字符集、NLS_LANG字符集、服务器端字符集如下:

    1. windows编码字符集:在命令行敲入chcp命令,显示936,说明是使用GBK;或者在cmd命令行标题栏右键属性,在弹出对话框内可以看到当前的字符集编码;
    2. NLS_LANG字符集:由于之前没设环境变量,所以NLS_LANG为空;
    3. 服务器端字符集:执行SQL语句:
      select userenv(‘language’) from dual;
      显示
      SIMPLIFIED CHINESE_CHINA.AL32UTF8;

    于是经过上述三部,非常兴奋地设置环境变量NLS_LANG为SIMPLIFIED CHINESE_CHINA.AL32UTF8:

    set NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8

    从而使客户端和服务器端字符集统一。但遗憾的是仍然没能解决乱码,只是乱码换了张乱的面孔而已。


    修改注册表NLS_LANG的值

    于是根据资料又查询了注册表得到:

    nls=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    于是修改注册nls的值为SIMPLIFIED CHINESE_CHINA.AL32UTF8,再次遗憾问题依旧。


    设置字符集为
    ZHS16GBK

    有人说如果操作系统的chcp是936,果断设置NLS_LANG为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,设置后,乱码果然正常了。

    问题解决了,但原因仍然没搞明白,请高手解答。

    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    内存问题再次注意
    数据分析(基础/数组)
    总结
    scrapy框架
    selenium
    chromedriver设置无界面模式 selenium基础操作
    selenium+phantomjs/Chrome/Firefox
    json解析模块
    cookie模拟登录
    常用正则
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4617808.html
Copyright © 2020-2023  润新知