【转】php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)
原文链接:http://blog.csdn.net/ysydao/article/details/11002295
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+MySQL中文乱码解决方案
除了按方案C那样的做法外,还要在你的数据查询/修改/增加之前加入数据库编码。
view plaincopy to clipboardprint?
<?php
mysql_query('SET NAMES UTF8');
//接下来的就是查出数据或者修改,增加咯
?>
<?phpmysql_query('SET NAMES UTF8');//接下来的就是查出数据或者修改,增加咯?>
注意这里的UTF8和之前的不一样。中间没有横线。
通过以上应该就能解决PHP中文乱码的问题了。
【转】php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)的更多相关文章
- 在PHP中PDO解决中文乱码问题的一些补充
我的环境是appsver包, 在网上最常出现的解决中文乱码显示的代码是: 第一种:PDO::__construct($dsn, $user, $pass, array (PDO::MYSQL_ATTR ...
- 增加UBUNTU字符集 解决中文乱码问题
对GBK,GB2312,GB18030字符集的支持是UBUNTU中文乱码的罪魁祸首,其实我们可以在保持UTF-8为默认编码的条件下添加对这几个编码的支持,以解决中文乱码问题. 我想这个问题肯定有其他人 ...
- Sublime Text 2—解决中文乱码
Sublime Text 2是一个非常棒的代码及文本编辑器,绿色小巧.速度飞快,跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮.代码补全等,有着许多其他编辑器没 ...
- zabbix解决中文乱码问题(没有测试成功)
zabbix解决中文乱码问题 1.在windows系统中找一个自己喜欢的字体,这里我们用:msyh.ttf 2.将字体上传至/var/www/html/zabbix/fonts目录下 [root@za ...
- 【原创】通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0...
这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错 ...
- Debian 6解决中文乱码
DEBIAN下中文显示 一.首先检查LOCALE情况 说明:DEBIAN因为基于GNU所以,对不同地域进行了不同的包支持,以LOCALE形式存在. 1.挂载ISO文件包,前8个ISO包就可以(这里不在 ...
- 04_过滤器Filter_02_Filter解决中文乱码问题
[过滤器解决中文乱码问题实例] [工程截图] [web.xml] <?xml version="1.0" encoding="UTF-8"?> &l ...
- Web---演示servlet技术(servlet生命周期),解决中文乱码问题
本节讲解决中文乱码问题的4种方法. 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼♪(^∇^*)~过段时间才会学. servlet生命周期演示: index.jsp: <%@ ...
- 通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0...
原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对 ...
随机推荐
- Thread.Sleep引发ThreadAbortException异常
短信平台记录日志模块,是通过异步方式来记录的,即日志工具类里初始化一个Queue对象,公共的写日志方法的处理逻辑是把日志消息放到Queue里.构造器里设定一个死循环,不停的读队,然后把日志消息持久化到 ...
- 生成模型(Generative Model)与判别模型(Discriminative Model)
摘要: 1.定义 2.常见算法 3.特性 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标 ...
- salesforce 零基础学习(四十八)自定义列表分页之Pagination基类封装 ※※※
我们知道,salesforce中系统标准列表页面提供了相应的分页功能,如果要使用其分页功能,可以访问http://www.cnblogs.com/zero-zyq/p/5343287.html查看相关 ...
- iOS-语言本地化
在使用本地化语言之前,来看看本地化语言文件内容的结构(这里我以Chinese为例):"Cancel"="取消";"OK"="确定& ...
- weblogic10内存溢出解决方法
在开发过程中经常会遇到weblogic内存溢出问题,用下面的办法解决了. 找到domain/bin下的setDomainEnv.cmd文件,里面可以找到以下四行代码,将值该打一倍,重启服务. set ...
- 将数据从MySQL迁移到Oracle的注意事项
将数据从MySQL迁移到Oracle的注意事项1.自动增长的数据类型处理MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值.ORACLE没有自动增长的数据类型,需要建立一个自动 ...
- 搭建LNAMP环境(三)- 源码安装Apache2.4
上一篇:搭建LNAMP环境(二)- 源码安装Nginx1.10 1.yum安装编译apache需要的包(如果已经安装,可跳过此步骤) yum -y install pcre pcre-devel zl ...
- The replication agent has not logged a progress message in 10 minutes.
打开Replication Monitor,在Subscription Watch List Tab中,发现有大量的status= “Performance critical” 的黄色Warning, ...
- Vue 方法与事件处理器
按键修饰符 在监听键盘事件时,我们经常需要检测 keyCode.Vue.js 允许为 v-on 添加按键修饰符: <!-- 只有在 keyCode 是 时调用 vm.submit() --> ...
- 深入学习jQuery动画控制
× 目录 [1]动画状态 [2]停止动画 [3]动画延迟[4]全局控制 前面的话 jQuery动画可以使用fade.hide.slide等方法实现基本动画效果,可以使用animate实现自定义动画,甚 ...