欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

php pdo mysql 乱码,php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)...

发布时间:2025/3/15 数据库 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 php pdo mysql 乱码,php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

摘要:PHP 用pdo连接数据库时出现中文乱码问题解决办法1.array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"),在与数据库建立连接的时候的第四个参数   example:        $dbh = new PDO($

PHP 用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

2.将文件的编码存为UTF-8.记事本或Editplus等编辑器都有保存时选择编码的功能。

B.HTML和PHP混合的页面解决方案。

除了A方案说的那些之外。还要在文件的最上面加上下面这句代码。

view plaincopy to clipboardprint?

header("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?

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

?>

然后保存为UTF-8编码的文件即可。注意和方案B一样。注意用那些去除BOM的编辑器保存。否则还是会报错。

D.PHP+MySQL中文乱码解决方案

除了按方案C那样的做法外,还要在你的数据查询/修改/增加之前加入数据库编码。

view plaincopy to clipboardprint?

mysql_query('SET NAMES UTF8');

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

?>

注意这里的UTF8和之前的不一样。中间没有横线。

通过以上应该就能解决PHP中文乱码的问题了。

总结

以上是生活随笔为你收集整理的php pdo mysql 乱码,php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。