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请新增)

原文地址:https://www.cnblogs.com/SmilingEye/p/7068888.html