oracle 安装乱码,linux安装Oracle中文乱码问题汇总

本文介绍了解决Oracle数据库中文乱码的方法,分为操作系统层、数据库层及PL/SQL层三部分进行调整。针对不同层级提供了具体操作步骤,确保客户端与服务端字符集一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决oracle中文显示乱码有三层地方需要调整或者修改

第一层:操作系统层

1.首先查看linux是否有安装中文字符集,locale -a

641d7a7a9400059026ba1adb43bb1031.png

2.设置用户的中文字符集

查看到linux安装了中文字符集,那么oracle用户下面要设置中文字符集vi /etc/locale.conf # centos7是这个配置文件,有的linux是这个配置文件/etc/sysconfig/i18n

LANG="zh_CN.UTF-8"

上面的那种方法设置完后,系统所有用户的字符集都是UTF-8。也可以改带个用户的字符集,就是在用户下的环境变量配置文件里面.bashrc里面直接export LANG="zh_CN.UTF-8"

第二层:数据库层

在数据库里面查询数据库和实例的字符集select * from nls_database_parameters;

select * from nls_instance_parameters;

3623c43c803dc8ddc6261e18ab35db07.png

可以看到数据库的字符集是ZHS16GBK,ok;要保持服务端和客户端的字符集一致export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

这样之后,那我们打开sqlplus 查询中文,一般就能正常显示了,如果还是乱码,那就新insert一个中文看看,因为修改之前的字符编码跟修改之后的不一致,比如插进去的时候是UTF8解析的,现在改为gbk那么解析就是乱码咯。(sqlplus能正常显示中文之后,我们离胜利更近了一步)。

第三层:plsql层(windows层)

有的人碰到,sqlplus能正常显示中文,但是自己windows里面安装的plsql查询中文就是乱码。(问题就在这里了,我们要解开中文乱码的面纱了)

我们要理解 ,导致中文乱码的原因是什么?是客户端和服务端的中文字符集不一致导致的,这个很好理解两个人说话要用同一种语言(字符集),你说广东话我说闽南语那肯定就很乱咯(乱码),因为解析出错嘛(服务端或者客户端都会解析出错)。

所以,第二层里面在环境变量里面设置export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

就是设置的客户端的字符集,跟数据库保持了一致。那我们windows plsql 也是客户端嘛,所以也要设置NLS_LANG这个环境变量。不罗嗦,上图。d1097fd10d5d2ca88ea0e4a31bc344b5.png

只要是 ZHS16GBK就行了,美国还是中国的这个无所谓。

如上三层,oracle乱码字符集的问题基本就解决了,还有就是这次我示例里面oracle数据库里面的字符集是ZHS16GBK,有的人安装的时候设置的是UTF8的,那么客户端就要设置成UTF8的。并且oracle数据库的字符集是可以修改的,这个修改方法可以去google。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值