首頁 >後端開發 >php教程 >连接mysql服务器报错时,出现乱码

连接mysql服务器报错时,出现乱码

WBOY
WBOY原創
2016-06-23 13:52:451140瀏覽

页头用了
header('content-type:text/html;charset=utf-8');

try
{
   $this->dbo=new PDO($dsn,$dbuser,$dbpassword);
}
catch(Exception $e)
{
  echo $e->getMessage();
}

连接失败时会报错,但是乱码,IE下编码查看是UTF-8,但是是乱码,如果选择GB2312就不会有乱码了。

页面的格式也是UTF-8。


回复讨论(解决方案)

mysql 服务器出现故障时的错误信息是按所在操作系统默认字符集给出的
你使用的是 windows,所以错误信息是 gbk 的
不过这并没有关系,毕竟此类错误极少出现

这没什么关系,你改下浏览器编码就是了。

查看下浏览器的编码可否是gb2312

mysql 服务器出现故障时的错误信息是按所在操作系统默认字符集给出的
你使用的是 windows,所以错误信息是 gbk 的
不过这并没有关系,毕竟此类错误极少出现



请问有没有解决方法呢?除了换系统。。。

你可以在 echo $e->getMessage(); 时
先检查一下 $e->getMessage() 返回的是什么字符集的内容

你可以在 echo $e->getMessage(); 时
先检查一下 $e->getMessage() 返回的是什么字符集的内容



用两个函数可解决这个问题:mb_detect_encoding,iconv

如果能直接修改某些配置就好了,这样比较麻烦
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn