返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php怎么设置oracle编码
  • 779
分享到

php怎么设置oracle编码

phporacle 2015-01-11 08:01:29 779人浏览
摘要

php设置oracle编码的方法:1、获取oracle的字符集;2、运行“select * from V$NLS_PARAMETERS;”;3、通过iconv函数进行编码转换即可。

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

php怎么设置oracle编码?

php连接oracle设定字符集,避免乱码

数据库oracle,当php连接oracle的时候,最好指定字符集。

查PHP手册,oci_connect的第四个参数为charset,这是关键。

首先获取oracle的字符集,运行“select * from V$NLS_PARAMETERS;”,变量NLS_CHARACTERSET对应的就是我们需要的字符集,比如我这里就是“ZHS16GBK”。所以,最终的PHP代码为:

$c1 = oci_connect("scott", "tiger", $db, 'zhs16gbk');

我本地的PHP文件统一用utf-8,所以,获取的代码还要经过如下编码转换:

while ($dat = oci_fetch_row($cur)) {
  print_r(iconv('gb2312', 'utf-8', $dat[0]));
}

更新:

同事说,Oracle可以按照 客户端指定的字符集 提供数据。也就是说,如果我本地PHP文件用UTF-8,那么,我在oci_connect的时候,直接指定utf-8就行了,连编码转换都省了。

$c1 = oci_connect("scott", "tiger", $db, 'UTF8');

另外,有个奇怪的问题:前面编码转换的iconv在测试机环境正常,但是传到远程就不能正常解析了,后来换成了mb_convert_encoding就可以了,代码如下:

$nickname = mb_convert_encoding($dat[0], 'utf-8', 'gbk');

可能原因在于iconv里面的第二个参数是否加了“//IGNORE”,请参考Http://cn2.php.net/manual/en/function.iconv.php。有兴趣的,可以试试,我就不试了

另外附上自己封装好的一个php查询oracle数据的方法Dingsql


function DingSql($sql = ''){
    header("Content-type: text/html; charset=utf-8");
    if(!$sql) return false;
    $conn= oci_connect('name', 'passwd', 'IP:PORT/serverName','zhs16gbk');
    if($conn) {
        $stid = oci_parse($conn, $sql); // 配置SQL语句,准备执行
        if (!$stid) {
            $e = oci_error($conn);
            print htmlentities($e['message']);
            exit;
        }
        $r = oci_execute($stid, OCI_DEFAULT); // 执行SQL。OCI_DEFAULT表示不要自动commit
        if(!$r) {
            $e = oci_error($stid);
            echo htmlentities($e['message']);
            exit;
        }
    
        $kkk = [];
        $i = '-1';
        while($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {//返回关联数据并创建null
            $i++;
            foreach($row as $key => $item) {
                $kkk[$i][$key] = iconv("gb2312", "utf-8//TRANSLIT", $item);
            }
        }
        oci_close($conn);
        return $kkk;    //二维关联数组
    }else{
        echo '连接oracle失败!';exit;
    }
}

--结束END--

本文标题: php怎么设置oracle编码

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

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

猜你喜欢
  • 怎么使用nodejs设置编码
    这篇文章主要为大家展示了“怎么使用nodejs设置编码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用nodejs设置编码”这篇文章吧。方法:1、使用“res ...
    2007
    2023-03-24
    nodejs
  • php头编码实例设置方法及代码
    在本篇文章里小编给大家整理的是一篇关于php头编码实例设置方法及代码,有兴趣的朋友们可以学习参考下。 ...
    739
    2023-03-24
    php 头编码
  • MySQL中怎么设置默认编码
    MySQL中怎么设置默认编码,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。最近在MacOS下用django框架做web开发,于是用MacPorts安装了MySQ ...
    1050
    2023-03-24
    mysql
  • php怎么实现不重复编码
    php实现不重复编码的方法:1、创建一个PHP示例文件;2、使用PHP进行进制转换;3、通过数据库得到10进制的编号,并保证编号唯一即可。 ...
    226
    2023-03-24
    php
  • php怎么查询变量的编码
    在PHP中可以通过mb_detect_encoding函数查询变量的编码,该函数的作用就是检测字符的编码,其使用语法是“mb_detect_encoding(string $str, mixed $encoding_list...)”。 ...
    706
    2023-03-24
    php 编码
  • mysql设置编码的命令怎么写
    这篇文章将为大家详细讲解有关mysql设置编码的命令怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql设置编码的命令是:【SET character_set_database = utf8;】 ...
    290
    2023-03-24
    mysql
  • php怎么实现ucs2编码
    php实现ucs2编码的方法:1、创建一个PHP示例文件;2、通过“function Ucs2Code($str,$encode="UTF-8"){...}”方法实现ucs2编码即可。 ...
    631
    2023-03-24
    php ucs2编码
  • php 怎么设置空格
    php设置空格的方法:1、创建一个PHP示例文件;2、通过“function white_space( $string, $whitespace ){...}”方法设置空格即可。 ...
    118
    2023-03-24
    php 空格
  • php怎么设置星期
    php设置星期的方法:1、通过“date("w");”方法获取数字星期;2、通过“$weekarray[date("w")];”方法获取中文星期;3、通过“date("w",strtotime("..."))”方法获取指定日期。 ...
    606
    2023-03-24
    php
  • mysql中怎么设置默认字符编码
    mysql中怎么设置默认字符编码,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码)MySQL的默认编码 ...
    662
    2023-03-24
    mysql
  • php怎么修改数据库编码
    php修改数据库编码的方法:1、在mysql数据库,创建一张user表;2、创建PHP文件并连接mysql数据库;3、使用mysqli_query函数执行“set names 'utf8'”sql语句,并设置连接数据库的编码为utf8即可。 ...
    720
    2023-03-24
    php 数据库编码
  • mysql设置编码格式-
    创建table的时候就使用utf8编码在每次创建表的时候都在最后加上 character set = utf8就可以很好的支持中文 create table xxx ( id int auto_increment,t ...
    835
    2023-03-24
    mysql设置编码格式-
  • MySQL字符编码设置
    通过show variables like 'character_set%%';查看编码修改mysql的编码方式可以有以下几个:1.通过配置文件修改my.ini(windows下)或/etc/my.cnf(linux下)分别添加如下内容[m ...
    514
    2023-03-24
    mysql 编码设置 l字符
  • php 怎么设置本地时间
    php设置本地时间的方法:1、在页头使用“date_default_timezone_set()”设置默认时区为北京时间;2、在php.ini中设置“date.timezone”的值为PRC即可。 ...
    273
    2023-03-24
    php
  • php 怎么设置input只读
    php设置input只读的方法:1、打开相应的代码文件;2、通过“<input type="text" readonly>”方式设置input只读即可。 ...
    803
    2023-03-24
    php input 只读属性
  • php怎么设置变量类型
    php中,可利用settype()函数来设置变量类型,语法“settype($var,"数据类型")”;数据类型值可为“boolean”、“integer”、“float”、“string”、“array”、“object”、“null”。 ...
    888
    2023-03-24
    php 变量类型
  • php中怎么设置时区
    今天就跟大家聊聊有关php中怎么设置时区,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。PHP中设置时区方法小结代码如下:? date_default_timezone_set(PR ...
    749
    2023-03-24
    php
  • Centos8系统怎么设置为字符编码?
    Centos8终端怎么设置字符编码?之前我们介绍过使用命令设置的,今天我们就来看看在图形界面来设置的方法。1、点【活动】。2、点侧边栏的【终端】图标按钮,打开【终端】程序,3、打开【终端】程序后,点菜单栏上的【终端】按钮。4、在下拉菜单中点 ...
    622
    2023-03-24
    Centos Centos8 字符编码
  • php 怎么将其他编码 转utf8
    php将其他编码转成utf8的方法:1、创建一个PHP示例文件;2、找出字符串本身的编码;3、通过mb_convert_encoding转换为utf-8编码即可。 ...
    504
    2023-03-24
    编码 php
  • Oracle中怎么设置表空间
    这篇文章将为大家详细讲解有关Oracle中怎么设置表空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、***表空间管理1.创建表空间参数说明:EXTENT MANAGEMENT LO ...
    177
    2023-03-24
    oracle
热门问答
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作