pl/sql
中文显示为乱码解决
在
windows
中创建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED
CHINESE_CHINA.ZHS16GBK”,
然后重新启动
pl/sql
developer
,
这样检索出来的中文内容就不会是乱码了。
如果想转换为
UTF8
字符集,
可以赋予“NLS_LANG”为
“AMERICAN_AMERICA.UTF8”,
然后重新启动
pl/sql
developer
。其它字符集设置同上。
NLS_LANG
格式:
NLS_LANG = language_territory.charset
有三个组成部分(语言、地域和字符集),每个成分控制了
NLS
子集的特性。其中:
language
指定服务器
消息的语言。
territory
指定服务器的日期和数字格式。
charset
指定字符集。
如何设置客户端字符集与服务器端字符集一致
:
运行
REGEDIT,
第一步选
HKEY_LOCAL_MACHINE,
第二步选择
SOFTWARE
,第三步选择
Oracle
,第四步选择
NLS_LANG
,键入与服务器端相同的字符集。
例如
:
AMERICAN_AMERICA.UTF8
或者
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
oracle 10g
装上后
,
建了个表写入中文数据
,
发现通过工具
PL/SQL Developer
中文不能正常显示
.
要正常显示中文
,
就必须得服务器和客户端编码一致才行。于是检查:
1.
检查服务器编码
:
执行
SQL
语法
:
select * from v$nls_parameters;
也可以参照
/home/oracle/.bash_profile
相关语言设置
.
可以看到我的相关设置是
:
LANG=zh_CN.GBK
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
2.
设置本地客户端编码
:
进入我的电脑
,
属性
,
高级
,
环境变量
,
添加
2
项
:
LANG=zh_CN.GBK
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
如图
:
3.
重新连接
sqlplus,
查看数据
:
显示正常
.
4.PL/SQL Developer
设置并重新连接
:
在
pl/sql developer
的菜单
->tools->preferences->user interface->fonts
中修改为中文字体
重新连接
,
如图
:
显示正常
.OK!