linux安装Oracle中文乱码问题汇总
admin
2023-05-27 08:41:26
0

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

第一层:操作系统层

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

locale -a

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

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;

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

可以看到数据库的字符集是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这个环境变量。不罗嗦,上图。linux安装Oracle中文乱码问题汇总

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

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

相关内容

热门资讯

大科学装置建设全面提速 创新成... 央视网消息(新闻联播):重大科技基础设施是建设科技强国的利器。今年以来,我国大科学装置建设全面提速,...
贝塔创新科技观察算力公有化趋势... 从公有云到公有算力网络:AI基础设施进入弹性调度时代 过去几年,市场更关注大模型参数、算法能力和应...
活力中国调研行丨激活创新源 合... 新华社合肥8月5日电 题:激活创新源 合肥大健康科研成果加速产业化 新华社记者高亢、张紫赟 近日,“...
凤凰连线:为何伊朗称“即使与阿... 据凤凰卫视报道,伊朗知情人士当地时间周三透露称,伊朗与阿曼就霍尔木兹海峡船舶通行安排,可能达成协议,...
伊朗称与阿曼就霍尔木兹海峡航运... 据凤凰卫视报道,伊朗外交部发言人巴加埃5日表示,伊朗与阿曼已就霍尔木兹海峡拟定航道的地理坐标达成一致...
予非知识图谱大模型完成生成式人... 近日,山东省网信办正式公布生成式人工智能服务备案名录,潍坊华创信息技术有限公司自主研发的“予非知识图...
学习语丨人工智能应该是造福全人... 近日,习近平总书记向2025世界智能产业博览会致贺信,指出:“人工智能应该是造福全人类的国际公共产品...
2026年交易全链路可追溯的智... 2026-08-05 12:10:48 作者:狼叫兽 2026年被视作智能体支付规模化落地的关键之年...
百余名中外专家齐聚海西 共话人... 8月4日,人工智能赋能的天文学开放科学会议(第二届)在青海省海西州盛大启幕。来自中国、美国、英国、法...
“私自评大师的机构”,也被撤了 曾经披着“大师”外衣四处走穴的人,正在纷纷退场。2026年以来,多个行业协会宣布撤销此前授予的“大师...