解决链接mysql错误信息乱码显示问题

问题

一直以来这乱码问题遇到的重覆不下N次,后来看到

SQLSTATE[HY000] [2002]

的错误代号,可以直觉反应就是连不到资料库

Trace 出来的错误讯息实际是长这个样子的,这是因为MySQL 预设输出错误讯息的是以UTF-8 输出,而非二进制的字符字串值从其字符集转换为UTF-8 就产生像以下的编码状况

mysqli_connect(): (HY000/2002): \xb5L\xaak\xb3s\xbdu\xa1A\xa6]\xac\xb0\xa5\xd8\xbc\xd0\xb9q\xb8\xa3\xa9\xda\xb5\xb4\xb3s\xbdu\xa1C\r\n

 

我们看显示的样子就像下图,以使用者端来看就是有点不开心

解决方法

用mb_convert_encoding 的方式,先将取得编码讯息转成utf-8 (以简体中文的来说就是gb2312)

$exMessage = mb_convert_encoding($exception->getMessage(),"utf8","gb2312");

如此就能正常显示中文啦

 

参与评论