oracle oci utf,Linux平台上OCI操作ORACLE数据库时乱码问题的解决

本人刚学Linux,还在研究OCI。前几日调通了OCI连接数据库的问题后,用ORACLE自带的例子测试了一下,能正常读取数据(都是英文的),就放心了

本人刚学Linux,还在研究OCI。

前几日调通了OCI连接数据库的问题后,用Oracle自带的例子测试了一下,能正常读取数据(都是英文的),就放心了,,转去开发别的模块。这几天做数据库模块是需要插入中文数据,才发现插进去的都是 "????"。确保数据都是GB2312格式,转换成UTF-8后依然无效。翻来覆去转了好多次,总是不见效。

google发现了一篇文章说要在客户端设置字符集NLS_LANG,记得以前安装oracle的时候是英文安装,只设置了LANG变量,这个没有设置。于是在ORACLE服务器端 SELECT * FROM sys.props$ ,得到

NLS_LANGUAGE=AMERICAN

NLS_TERRITORY=AMERICA

NLS_ISO_CURRENCY=AMERICA

NLS_CHARACTERSET=ZHS16GBK

根据这些参数设置NLS_LANG=AMERICAN_AMERICA.ZHS16GBK (GOOGLE出来的文章中设置为NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK",是因为安装的服务器的字符集设置不同)。

然后在/etc/profile中export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK ,然后source /etc/profile,再运行程序,哈哈,中文出来了啊!

logo.gif

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值