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

如果我加上$pdo->exec("setnamesutf8");,,存的是乱码,读出来就是两个问号<?phpheader("Content-type:text/html;... 如果我加上$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
展开
 我来答
莫路草根
推荐于2016-05-01 · TA获得超过4102个赞
知道大有可为答主
回答量:4184
采纳率:85%
帮助的人:1036万
展开全部
代码储存文件的格式不是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");
你这句加和不加,数据库中都显示的是乱码吗,这样的话那你看看数据库的编码是什么。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式