<?php
$db_type = 'mysql';
$db_host = '192.168.9.2';
$db_name = 'myblog';
$db_user = 'root';
$db_pwd = 'root';
$dsn = "$db_type:host=$db_host; dbname=$db_name";
try{
$pdo = new PDO($dsn, $db_user, $db_pwd);
$pdo -> exec('set names utf-8');//设置输出编码集
echo '连接成功';
}catch(PDOException $e){
die('数据库连接失败' . $e -> getMessage());
}
?>在这里插入代码片
$pdo -> exec('set names utf-8');
$pdo -> query('set names utf-8');
mysql_query('SET NAMES UTF8');
这三种都试过,还是不行,仍然乱码,后来在PHP的第一行加了:
header(“Content-type:text/html;charset=utf-8”); 乱码问题解决,网上说的都比较片面,其实解决乱码,分几种情况:
A.HTML中文乱码问题的解决方法。
1.在head标签里面加入这句
<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>
B.HTML和PHP混合的页面解决方案。
除了A方案说的那些之外。还要在文件的最上面加上下面这句代码。
<?php
header("Content-type:text/html;charset=utf-8");
?>
<?phpheader("Content-type:text/html;charset=utf-8");?>
C.纯PHP页面的中文乱码解决方案(数据是静态的)
只要在页面的开始加上
view plaincopy to clipboardprint?
<?php
header("Content-type:text/html;charset=utf-8");
?>
D.PHP+Mysql中文乱码解决方案
除了按方案C那样的做法外,还要在你的数据查询/修改/增加之前加入数据库编码。
view plaincopy to clipboardprint?
<?php
mysql_query('SET NAMES UTF8');
?>