广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >如何解决php 连接oracle乱码问题
  • 941
分享到

如何解决php 连接oracle乱码问题

phporacle 2016-10-23 00:10:35 941人浏览 绘本
摘要

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑如何解决php 连接oracle乱码问题?PHP 连接Oracle及乱码问题笔记1. PHP连接Oracle步骤1. 提取oracle Instant Client核心D

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

如何解决php 连接oracle乱码问题?

PHP 连接Oracle及乱码问题笔记

1. PHP连接Oracle

步骤1. 提取oracle Instant Client核心DLL

从OTN 的 Instant Client 页面下载用于 Windows 的 Instant Client Basic(11g) 程序包。此压缩文件的大小大约为 48MB。创建一个子目录(例如,c:\instantclient11_2),然后从压缩文件中复制以下库到apache\bin目录下:

oraociei11.dll 
orannzsbb11.dll 
oci.dll

这三个文件的总大小大约为 126MB。
要使用 php 老版本的“oracle”扩展(在 php.ini 中使用“extension=php_oracle.dll”启用),则复制 ociw32.dll 而非 oci.dll。

步骤2:编辑环境变量,将 c:\instantclient11_2 添加到 PATH 中(系统环境变量位于其他 Oracle 目录之前)。

例如,在 Win7 上,依次单击“计算机”->右键“属性”->“高级系统设置”->“高级”->“环境变量”,编辑系统变量列表中的 PATH。
如果使用了 tnsnames.ora 文件定义 Oracle Net 服务名称,则将 tnsnames.ora 复制到 c:\instantclient11_2,并将用户环境变量 TNS_ADMIN 设置为 c:\instantclient11_2。

步骤3:打开php的oci8扩展 编辑 php.ini,把 OCI8 扩展打开,即去掉注释符号‘;’:extension=php_oci8.dll

重新启动 Apache。重启服务器(服务器必须重启,不然环境变量不起效)

重启后通过phpinfo() 看到以下内容则表示配置成功:

oci8

OCI8 Supportenabled
Version1.4.7
Revision$Id: bf2eaf558b050b6d2e6d098bed6345af7e842ea4 $
Active Persistent Connections0
Active Connections0
Oracle Run-time Client Library Version11.2.0.3.0
Oracle Instant Client Version11.2
Temporary Lob supportenabled
Collections supportenabled
DirectiveLocal ValueMaster Value
oci8.connection_classno valueno value
oci8.default_prefetch100100
oci8.eventsOffOff
oci8.max_persistent-1-1
oci8.old_oci_close_semanticsOffOff
oci8.persistent_timeout-1-1
oci8.ping_interval6060
oci8.privileged_connectOffOff
oci8.statement_cache_size2020

2. PHP Oracle 中文乱码问题

通常缺省配置连接Oracle在处理中文时都会遇到乱码问题,其实绝大部分人都知道在客户端连接Oracle服务端前首先要在客户端正确的设置服务端的字符集信息,通过PLsql运行“select * from V$NLS_PARAMETERS;” 即可获取oracle的字符集,变量NLS_CHARACTERSET对应的就是我们需要的字符集,比如我这里就是“WE8ISO8859P1”

设置字符集的方法如下:

方法一: 连接前设置环境变量

putenv("NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1");
$conn=oci_new_connect($config['username'], $config['passWord'],$config['database']);

方法二:连接时设置环境变量

 $conn=oci_new_connect($config['username'], $config['password'],$config['database'],'we8iso8859p1');

但是很快你会发现通过上述设置读取的中文数据在不设置编码的情况下可以正常显示,而一旦在页面(假如页面的字符集为UTF8)中使用则仍为乱码,

并且即便做转换 从 we8iso8859p1 -> utf-8 依旧为乱码。

其实仔细研究后发现oci8 以数据库编码WE8ISO8859P1获取数据后 自动转换为操作系统缺省的编码格式,假如我使用的操作系统缺省编码为GBK,则实际上通过OCI8读取后,字符的编码即为GBK, 因此在页面使用的时候编码转换应该为 从 GBK -> utf-8 :

 echo iconv('GBK','utf-8',$vo["USERNAME"]);

--结束END--

本文标题: 如何解决php 连接oracle乱码问题

本文链接: https://www.lsjlt.com/news/416.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决php 连接oracle乱码问题
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑如何解决php 连接oracle乱码问题?PHP 连接Oracle及乱码问题笔记1. PHP连接Oracle步骤1. 提取Oracle Instant Client核心D...
    99+
    2016-10-23
    php oracle
  • 怎么解决php连接oracle乱码问题
    本篇内容主要讲解“怎么解决php连接oracle乱码问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决php连接oracle乱码问题”吧!php连接oracle乱码的解决办法:1、设置环...
    99+
    2023-06-25
  • php连接mysql乱码问题如何解决
    今天小编给大家分享一下php连接mysql乱码问题如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、乱码形成原因当使...
    99+
    2023-07-05
  • php连接oracle乱码怎么解决
    本篇内容主要讲解“php连接oracle乱码怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php连接oracle乱码怎么解决”吧!php连接oracle乱码的解决办法:1、通过运行“se...
    99+
    2023-07-04
  • C#连接ORACLE出现乱码问题的解决方法
    目录方法一方法二方法三方法四以前做过java项目,连接各种数据库都得心应手,最近接触c#的一个项目,连接SqlServer数据库倒也是很好用,但是遇到oracle数据库就萎了,于是搜...
    99+
    2022-11-12
  • 如何解决解决户端连接CentOS系统乱码问题
    本篇文章为大家展示了如何解决解决户端连接CentOS系统乱码问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用CentOS系统的时候,经常会遇到ssh客户端连接CentOS系统乱码问题,这次我们...
    99+
    2023-06-16
  • php如何解决乱码问题
    这篇文章主要讲解了“php如何解决乱码问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何解决乱码问题”吧!什么是乱码在网页开发中,乱码是指在浏览器中显示的字符集和实际编码不一致,导...
    99+
    2023-07-05
  • 如何解决PHP+trim乱码问题
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。如何解决PHP+trim乱码问题?PHP的Trim截取乱码一直使用Trim过滤首尾两端的字符串,关于Trim的官方描述:trim — 去除字符串首尾处的空白字符(或者其...
    99+
    2016-12-10
    trim PHP
  • 如何解决php get 乱码问题
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。如何解决php get 乱码问题??PHP接收GET中文参数乱码的原因及解决方案方案1:$str = iconv("gb2312",&qu...
    99+
    2017-01-18
    php get
  • 如何解决hbuild php乱码问题
    本文操作环境:Windows7系统、HBuilderX 3.1.13版、Dell G3电脑。打开HBuilder这个软件,要保证正常运行HBuilder。检查没有其他错误,比如插件问题,自动闪退等等现象。在正常运行情况下,新建一个html文...
    99+
    2019-11-28
    hbuild
  • 如何解决php exec乱码问题
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑如何解决php exec乱码问题php 填坑exec或shell_exec无法返回中文乱码情况原本想执行:exec("python cmd.py",$...
    99+
    2015-12-28
    php exec
  • 如何解决php opendir乱码问题
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑如何解决php opendir乱码问题php读取中文目录乱码的解决办法前不久有个项目涉及到使用 php 读取文件目录,读取文件目录这个本身没什么问题,但读取的时候遇到中文...
    99+
    2017-12-24
    php opendir
  • 如何解决php 5.5乱码问题
    本文操作环境:Windows7系统、php5.5版、DELL G3电脑如何解决php 5.5乱码问题?保证各个地方保证同一种编码,假如都是utf-8html5页面:<meta charset='utf-8'>2、...
    99+
    2015-03-24
    php 5.5
  • 如何解决php readdir 乱码问题
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑如何解决php readdir 乱码问题?具体问题:PHP 使用 opendir readdir 中文文件乱码<php //打开 images 目录 $handle...
    99+
    2019-07-25
    php readdir
  • php glob 乱码问题如何解决
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php glob 中文乱码如何处理?<php print_r(glob("*.txt")); >可是当根目录下的 文件名是中文的就会出现输...
    99+
    2014-12-29
    php glob glob
  • 如何解决php imagecreate乱码问题
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑如何解决php imagecreate乱码问题?PHP创建图像时成为乱码的解决方法(GD)有问题的代码:<!DOCTYPE html PUBLIC "-/...
    99+
    2016-01-09
    php imagecreate
  • 如何解决php admin乱码问题
    本文操作环境:windows7系统、phpmyadmin4.9.2版、DELL G3电脑如何解决phpmyadmin乱码问题mysql phpmyadmin乱码解决最近参加比赛做的项目里面,后台需要交互,更新个性签名时出现乱码。查看数据库编...
    99+
    2018-09-14
    php admin
  • 如何解决android php乱码问题
    本篇内容主要讲解“如何解决android php乱码问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决android php乱码问题”吧!android php乱码的解决办法:1、填写对...
    99+
    2023-06-20
  • 如何解决jsp中的rar文件连接乱码问题
    这篇文章主要讲解了“如何解决jsp中的rar文件连接乱码问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决jsp中的rar文件连接乱码问题”吧!在jsp页面中做了一个rar文件的链接...
    99+
    2023-06-03
  • 如何解决php insert mysql乱码问题
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。如何解决php insert mysql乱码问题?php插入到mysql数据库中文乱码问题解决今天重装了系统重新安装了PHP的运行环境,也没注意太多,想写点东西复习复习...
    99+
    2021-03-12
    php insert
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作