博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决Sql Plus乱码的曲折历程
阅读量:5064 次
发布时间:2019-06-12

本文共 813 字,大约阅读时间需要 2 分钟。

在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,设置后,乱码果然正常了。

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

转载于:https://www.cnblogs.com/zhaiqianfeng/archive/2012/09/27/4617808.html

你可能感兴趣的文章
HDU ACM 1078 FatMouse and Cheese 记忆化+DFS
查看>>
【Android工具类】Activity管理工具类AppManager
查看>>
Asp.net视频摘要
查看>>
JNI 学习笔记
查看>>
函数指针声明时的形参列表可以没有
查看>>
gdb 的使用方法
查看>>
java 变量分类
查看>>
Chrome 静默打印及其它启动参数
查看>>
[转]Jquery中AJAX错误信息调试参考
查看>>
在vue-cli中搭建mock服务器
查看>>
Mysql ibd文件恢复指南
查看>>
很好的PHP分页类(调试过)
查看>>
51nod 1600 Simplr KMP(后缀自动机+维护树上的数据结构)
查看>>
Aspectj 实现Method条件运行
查看>>
Linux 常用命令
查看>>
EEPROM的操作---SPI接口和I2C接口
查看>>
python/Django(增、删、改、查)操作
查看>>
[emacs] python代码折叠
查看>>
关于this的指向
查看>>
Learning to Rank算法介绍:RankSVM 和 IR SVM
查看>>