`
王之子
  • 浏览: 110347 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PHP 连接 Oracle 出现中文乱码问题

阅读更多

数据库用 oracle,当 PHP连接 Oracle 的时候,如果指定字符集,会出现中文乱码。

 

查PHP手册,oci_pconnect  的第四个参数为 charset,只需设置这参数即可。

 

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

 

 

$conn = oci_pconnect('scott','tiger',
	"(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=192.168.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME=jocsbk)))",
	'AL32UTF8');

 

由于本地的 PHP 文件统一用 utf-8 ,所以,直接输出就正常了。不用进行编码转换。

 

另外,据查询相关资料,如果你本地的文件跟连接 Oracle 的字符集不相同,还要进行编码转换

 

 

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

//或者


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

 

也有另外一种解决方式,但没试过。Oracle 可以按照 客户端指定的字符集 提供数据。也就是说,如果我本地PHP文件用UTF-8,那么,我在oci_connect的时候,直接指定utf-8就行了,连编码转换都省了。

 

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

 

 原文链接:http://woqilin.blogspot.com/2016/05/php-oracle.html

分享到:
评论

相关推荐

    php pdo oracle中文乱码的快速解决方法

    以下是一个快速解决PHP PDO连接Oracle时出现中文乱码问题的方法。 首先,我们需要理解NLS_LANG环境变量的重要性。NLS_LANG是Oracle客户端的全局区域设置,用于指定字符集、日期格式等。对于正确显示中文字符,我们...

    MYSQL字符集与乱码问题分析

    《MySQL字符集与乱码问题分析》一文深入探讨了字符编码的历史背景、技术细节以及在MySQL中的应用,尤其关注解决常见的乱码问题。本文将根据提供的内容摘要,详细阐述其中涉及的关键知识点。 ### 字符集背景知识 ##...

    Linux php 中文乱码的快速解决方法

    在Linux环境中,PHP处理中文字符时可能会遇到乱码问题,特别是在网页输出时。这通常是由于字符编码设置不正确导致的。本文将详细讲解如何解决Linux PHP环境中的中文乱码问题,以及提供一些与之相关的解决方案。 ...

    oracle中英文字符集切换

    7. **调整应用系统**:确保所有连接数据库的应用程序(如Java、PHP等)的字符集设置与数据库保持一致,以防止乱码。 8. **监控与优化**:切换字符集可能会影响性能,因为某些字符集占用的空间较大。监控数据库性能...

    php手册PHP5研究室编无乱码版本chm

    8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21....

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP实例开发源码—PHPWind Forums(论坛)GBK.zip

    在这个压缩包中,PHPWind 的源码使用GBK编码,这意味着它能更好地处理中文字符,避免了乱码问题。 "使用须知.txt"文件可能是提供关于如何安装、配置和使用 PHPWind 论坛的指南。通常,安装步骤会涉及以下几个关键点...

    Asp Oracle存储过程返回结果集的代码

    这些设置是为了确保ASP页面在处理中文字符时不会出现乱码。 2. 定义了几个函数和子程序,分别用于建立数据库连接(Connect2OracleServer),断开数据库连接(DisconnectFromOracleServer),输出字符串(Echo),...

    oracle使用sql脚本生成csv文件案例学习

    - **SQLyog导入CSV数据问题**:SQLyog是MySQL数据库管理工具,如果导入CSV数据出现问题,可能需要检查数据格式、字符集设置以及是否有匹配的表结构。 - **MySQL CSV导入中文乱码**:确保数据库、表、字段的字符集...

    mysql+php代码结合使用集锦

    3. **编码问题**:在处理中文时,需要注意字符编码问题,确保前后端一致,避免乱码现象。 #### 五、扩展阅读 - **PHP官方文档**:[https://www.php.net/](https://www.php.net/) - **MySQL官方文档**:...

    WebIssues服务器客户端安装

    - 修改JSP文件中的字符集为`utf-8`以避免中文乱码问题。 - **运行项目**: - 使用Eclipse自带的Tomcat服务器运行项目。 #### 三、JDBC连接MySQL数据库 ##### 1. MySQL安装与配置 - **下载MySQL**: - 从MySQL...

    mysql 核心知识要点

    本文将从 MySQL 的基本操作和使用、优化、部署、数据库基本介绍、关系型数据库、非关系型数据库、MySQL 服务器、数据库对象、基本 SQL 操作、字符集、校对集、存储引擎、乱码问题解决、字段(列)类型、列属性等方面...

    基于JSP投票调查的WEB模块的实现(论文).doc

    - **Web页面出现乱码的问题**:这通常是由于编码设置不一致导致的。 - **IP地址受限存在的问题**:需要找到一种有效的方法来准确识别和记录客户端IP地址。 - **数据库连接问题**:确保数据库连接字符串正确无误,...

    WebLogic Web Development

    - **GBK与GB2312字符集的问题**:讨论了中文字符编码,GBK是GB2312的扩展,它们在处理中文字符时的区别,以及编码不匹配可能导致的乱码问题。 3. **Web应用打包与部署**: - **怎样制作ear,war文件**:EAR文件是...

    mysql核心内容

    - **乱码问题**:通常通过设置正确的字符集和校对集来解决。 9. **字段类型**: - **数值型**:包括整型、浮点型和定点数。 - **字符串型**:如char、varchar、text,以及enum和set。 - **日期时间型**:如...

    Mysql的核心要点

    - **解决方案**: 通过检查并调整数据库、表和字段的字符集设置来解决乱码问题。 #### 十、字段类型 - **数值型**: 如`INT`、`FLOAT`、`DECIMAL`等。 - **字符串型**: 如`VARCHAR`、`CHAR`、`TEXT`等。 - **日期...

Global site tag (gtag.js) - Google Analytics