oracle服务端与客户端字符集不同导致中文乱码解决方案

Posted SmilingEye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle服务端与客户端字符集不同导致中文乱码解决方案相关的知识,希望对你有一定的参考价值。

1.问题描述

用pl/sql登录时,会提示“数据库字符集(ZHS16GBK)和客户端字符集(2%)是不同的,字符集转化可能会造成不可预期的后果”,具体问题是中文乱码,如下图

2.问题分析

不管错误信息中你的数据库字符集是什么,都是由于数据库服务端和你的客户端字符集不统一造成的,所以只要将客户端字符集改为和服务端字符集一致就能解决问题。

3.问题解决步骤

3.1查看服务端字符集

pl/sql里查询 select userenv(\'language\') from dual

3.2查看客户端字符集并修改

打开注册表,“开始”-》“运行” 输入‘regedit’-确定。

找到HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE\\KEY_OraDb11g_home1,找到NLS_LANG选项,双击,修改为“服务端字符集”。

3.3修改环境变量

如果上述步骤任然报错(我自己是要做到第三步),修改环境变量NLS_LANG值为“服务端字符集”(如果没有NLS_LANG请新增)

 

以上是关于oracle服务端与客户端字符集不同导致中文乱码解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据出现中文乱码怎么解决

数据库中文乱码及分析

Oracle数据库中文乱码

oracle ---中文乱码问题

Linux环境解决Oracle 中文乱码

解决SqlPlus前台程序出现中文乱码的问题