博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)
阅读量:6681 次
发布时间:2019-06-25

本文共 1887 字,大约阅读时间需要 6 分钟。

原文链接:http://blog.csdn.net/ysydao/article/details/11002295

 用pdo连接时出现中文乱码问题解决办法

1.array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"),在与数据库建立连接的时候的第四个参数

   example:    
    $dbh = new PDO($dsn,$user,$pass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"));
下面两种按理说应该也能,而且有网友验证了这一事实,但我没成功!
2.通过query():
     $dbh = new PDO($dsn,$user,$pass);
     $dbh -> query('set names utf-8');
3.通过esec(): 
     $dbh = new PDO($dsn,$user,$pass);
     $dbh -> exec('set names utf-8');

 

A.首先说下HTML中文乱码问题的解决方法。

比如有个index.html的页面(这里是指真正的静态页面,修改服务器的……伪静态的请看方案B)
1.在head标签里面加入这句
view plaincopy to clipboardprint

<head>   

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  

</head>  

<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>

2.将文件的编码存为UTF-8.记事本或Editplus等编辑器都有保存时选择编码的功能。
B.HTML和PHP混合的页面解决方案。
除了A方案说的那些之外。还要在文件的最上面加上下面这句代码。 
view plaincopy to clipboardprint?
<?php  

header("Content-type:text/html;charset=utf-8");   

?>  
<?phpheader("Content-type:text/html;charset=utf-8");?> 
注意header前面不要有任何的输出(echo/print/print_r/var_dump等PHP的输出语句,或者是你在“<?php”前面回车/空格)。否则会报错。
如果你用系统自带的Notepad保存为UTF-8编码的文件时会报错。
为什么呢?明明header已经写在最前面了。
不要着急,因为你看到的并不是真实的。实际上你的“<?php”标签前面已经存在了3个可恶的‘东东’,但普通编辑器看不到。如果你用UltraEdit打开并切换到16进制模式可以看到前面多了“EF BB BF”。这是跟Windows识别编码的方式有关。但我们的Apache却不认识这个,把它当成了输出。导致header出错。别怕,还是有解决的方法。
很简单,直接使用Editplus保存为UTF-8即可。因为Editplus的UTF-8是去除了BOM的。
C.纯PHP页面的中文乱码解决方案(数据是静态的)
只要在页面的开始加上 
view plaincopy to clipboardprint?
<?php  

header("Content-type:text/html;charset=utf-8");  

?>  

<?phpheader("Content-type:text/html;charset=utf-8");?> 
然后保存为UTF-8编码的文件即可。注意和方案B一样。注意用那些去除BOM的编辑器保存。否则还是会报错。
D.PHP+中文乱码解决方案
除了按方案C那样的做法外,还要在你的数据查询/修改/增加之前加入数据库编码。
view plaincopy to clipboardprint?
<?php  

 mysql_query('SET NAMES UTF8');   

//接下来的就是查出数据或者修改,增加咯   

?>  

<?phpmysql_query('SET NAMES UTF8');//接下来的就是查出数据或者修改,增加咯?> 
注意这里的UTF8和之前的不一样。中间没有横线。
通过以上应该就能解决PHP中文乱码的问题了。

转载于:https://www.cnblogs.com/vcpp123/p/6034333.html

你可能感兴趣的文章
behavior planning——12.example cost funtion -lane change penalty
查看>>
基于 Spring + Atomikos + Mybatis的多数据源配置demo
查看>>
随笔-刚毕业找工作的点滴(程序员)
查看>>
利用poi3.8中SXSSFWorkbook实现大数据量导出excel
查看>>
day34-1 面向对象概述
查看>>
GCD之dispatch queue
查看>>
【Oracle】-初识PL/SQL
查看>>
黄聪:超实用的PHPExcel[导入][导出]实现方法总结
查看>>
模板变量,过滤器和静态文件引入
查看>>
Oracle 中的 Schema
查看>>
Web APi之认证(Authentication)两种实现方式后续【三】(十五)
查看>>
一条语句简单解决“每个Y的最新X”的SQL经典问题
查看>>
(转)链接服务器——获取EXCEL数据
查看>>
Go数组
查看>>
javascript在我的工作的用法
查看>>
市场活动课件:SQL Server 索引优化
查看>>
转 .NET4.5之初识async与await
查看>>
[React ] React Fundamentals: Component Lifecycle - Mounting Usage
查看>>
How to install Bekeley Extension Software Switch(BESS)?
查看>>
MySql数据库笔试题总结
查看>>