坑爹的NLS_LANG

解决Oracle中文乱码问题
本文介绍了在Linux环境下使用Oracle数据库时遇到的中文乱码问题及其解决方案。通过设置正确的NLS_LANG环境变量来确保程序与Oracle服务器之间的字符集匹配,最终解决了通过OCI开发的程序在部署到Linux服务器上时出现的中文乱码问题。
部署运行你感兴趣的模型镜像

这两天搞OCI开发,程序部署在linux上,插入中文从sqlplus客户端查询出来一直是乱码,但是通过sqlplus插入中文再查询,中文显示是正常的。

网上搜罗了很久,在linux上设置了很多lang,比如export LANG=zh_CN.GBK ,export LANG=zh_CN.UTF8等等,无奈一直不行啊。

网上说,要oracle服务器和客户端的字符集显示要一致。关于客户端这个词,看来还是我理解错了,我就把它理解为类似于sqlplus这样的客户端,而

不是我的程序,悲催啊,搞了4天。

既然sqlplus能够插入中文并且正常显示,那我就查查他的字符集是什么:select userenv("language") from dual ,结果为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK

于是在linux机器上(程序所在机器),export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" ,记得要带引号啊,不然会失败的

这样修改之后,再次启动程序,插入数据后,查询数据,终于OK啦。

注:程序的中文字符串字段编码为GBK,linux lang 设置为 export LANG=zh_CN.GBK


关于NLS_LANG,网上很多资料,也可以参考这里http://www.cnblogs.com/debuging/archive/2012/09/10/2679213.html

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值