zoukankan      html  css  js  c++  java
  • 解决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    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    npm改为淘宝镜像
    html中table中td内容换行
    git 切换文件夹路径
    git经常使用的命令
    day16
    day15
    day13
    day14
    day12
    day11
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4617808.html
Copyright © 2011-2022 走看看