oracle中文乱码问题解决

问题说明

环境

oracle装在AIX集群,访问客户端为linux服务器。

现象

通过linux服务器,sqlplus插入数据库的记录,读取是中文全部是乱码。

分析

这种情况大多数是客户端和服务器端字符集不一致导致的。

问题解决方法

查询数据库字符集

select userenv('language') from dual;

实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK

执行以下命令,查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和上面的值一样(AMERICAN_AMERICA.ZHS16GBK)。如果不是,需要设置环境变量

select * from V$NLS_PARAMETERS 

设置linux服务器字符集,为了永久生效,我将环境变量加到了.bashrc中

export NLS_LANG="AMERICAN_AMERICA".AL32UTF8

结束

自此问题解决,需要说明的是已经写入数据库的中文乱码,并不能正常显示,我理解的原因是写入时的编码和数据库编码不一致,有时间我再去研究一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值