从品牌网站建设到网络营销策划,从策略到执行的一站式服务
解决oracle中文显示乱码有三层地方需要调整或者修改
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的进贤网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!第一层:操作系统层
1.首先查看linux是否有安装中文字符集,
locale -a2.设置用户的中文字符集
查看到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;可以看到数据库的字符集是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这个环境变量。不罗嗦,上图。
只要是 ZHS16GBK就行了,美国还是中国的这个无所谓。
如上三层,oracle乱码字符集的问题基本就解决了,还有就是这次我示例里面oracle数据库里面的字符集是ZHS16GBK,有的人安装的时候设置的是UTF8的,那么客户端就要设置成UTF8的。并且oracle数据库的字符集是可以修改的,这个修改方法可以去google。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图