PHP使用ORACLE 数据库时的乱码问题

本人最近换了工作,  这边公司业务使用的DB都是ORACLE数据库. 基于边工作边学习的想法.  我自己也在虚拟机上鼓捣了一个ORACLE.  我使用的系统是CentOS6.2的版本.

从装ORACLE到在WIN下使用SQL DEVELOPER连接都没有问题. 因为我使用的WEB语言是PHP.  我就顺便再搭建了一个PHP的环境.  WEB Server使用的是nginx..  连接ORACLE使用的是PDO_OCI的扩展.  一直也没有出现问题.  但当我插入数据成功后. 再取出数据的时候..  我忽然发现. 我插入的中文数据. 取出来的时候.  尼玛全部变成了 问题(?).. 

我试过各种方式去解决. 也咨询过很多的朋友, 有做PHP的, 有ORACLE的专业DBA.   得到的答复是要统一客户端和服务器端的编码.  我只能一个一个得去尝试.  服务器我安装的时候选择的是UTF8. 并且设置了环境变量export NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8" , 并且保持客户端和服务器端的环境变量一样.. 

  但是,  尼玛的..  还是不行. 终于在纠结了好久之前, 在一个群里面一个朋友给了一个解决的方案.   在客户端再设置一个环境变量export NLS_LANGUAGE="SIMPLIFIED CHINESE".  这样才解决了这个问题..   我写这个没别的意思.    因为我在解决这个问题的时候在baidu和google的时候都没有找到相关的答案.  所以希望后面的朋友遇到这个问题能够更快的解决..   在这里我还是要谢谢那些对我提出解决方案的朋友们.  是你们的热心, 让无数人减少了解决问题的时间 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库中,中文乱码通常是由于数据库字符集和客户端的字符集不一致引起的。如果Oracle服务器内部的字符集和NLS_LANG变量里保存的字符集相同,查询会直接将数据返回给查询用户,插入操作会直接将数据保存进数据库中,不会出现乱码的情况。 要解决中文乱码问题,可以通过以下方法: 1. 确保数据库字符集正确设置为支持中文的字符集,如AL32UTF8。 2. 确保客户端的字符集数据库字符集一致。可以通过设置NLS_LANG环境变量来指定客户端的字符集,使其与数据库相匹配。 3. 在客户端编写SQL语句使用正确的编码格式。如果需要查询或插入中文数据,确保客户端使用的编码格式与数据库一致,并将数据以正确的编码方式传递给数据库。 通过以上方法,可以有效解决Oracle数据库中文乱码问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Oracle汉字乱码问题原因及解决方法](https://blog.csdn.net/gccr/article/details/1907303)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java连接数据库oracle中文乱码解决方案](https://download.csdn.net/download/weixin_38718223/12725294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Oracle数据库中文乱码问题](https://blog.csdn.net/oracle_kenan/article/details/120664424)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值