欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-29 16:46:36
...
页头用了
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

如果能直接修改某些配置就好了,这样比较麻烦