php存的时候声明utf-8,正常汉字,再用php取出来之后还是正常汉字 ,但是在数据库中显示的就是乱码

如果我加上$pdo->exec("set names utf8");,,存的是乱码,读出来就是两个问号

<?php
header("Content-type:text/html;charset=utf-8");
try{
$pdo= new pdo('mysql:host=localhost;dbname=lsj','root','lsjhxl');
$pdo->setAttribute(PDO::ATTR_ERRMODE,2);
//$pdo->exec("set names utf8");
$pdo->exec('insert into student(name) values("我的")');
}catch(PDOException $err){
echo $err->getMessage();
}

echo $pdo->lastinsertid();
?>
文件是直接用Dreamweaver新建的php文件,没有bom头
数据库
| character_set_client | utf8;
| character_set_connection | utf8 ;
|character_set_database | utf8
| character_set_filesystem | binary
| character_set_results | utf8
| character_set_server | utf8
| character_set_system | utf8
头部文件都有,没有用css

代码储存文件的格式不是utf-8的;

数据库编码格式不是utf-8的;

数据传输格式不是utf-8的(看数据库链接的时候有没有这句: mysql_query("set names utf8"));

html头部的<meta /> 标签没有指定编码格式(没有这句话:<meta http-equiv="Content-
Type" content="text/html; charset=utf-8" />);

php的头部没有设置header("Content-type: text/html; charset=utf-8");

css文件头部没有设置编码格式 (@CHARSET "UTF-8";);
等等. 如果你的文件出现乱码, 请对比以上进行修改即可追问

看补充的内容,这些都有

追答

//$pdo->exec("set names utf8");
你这句加和不加,数据库中都显示的是乱码吗,这样的话那你看看数据库的编码是什么。

追问

就是上述贴出来的编码方式,都是utf-8

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答