mysql mysqli 设置编码_PHP 中 mysqli 出错信息为乱码

用 PHP 的 mysqli 创建数据库连接时的出错信息显示为乱码。

代码如下:

$conn = new mysqli('localhost', 'xxxxx', 'xxxxxx');

?>

尚未安装 mysql,只是想看一下 mysqli 在未安装 mysql 时的出错信息。而得到的结果如下:

f942a2ba0551b1b2b415ae749b09d768.png

在 chrome 和 IE11 下均为乱码。

由检查工具得到 http response header 中的 charset 为 utf-8,而 chrome 和 IE11 的默认设置也均为 utf-8。此外,php 文件本身以及 Apache 和 PHP 的默认编码设置也均为 utf-8。

目前推测是 mysqli 本身的问题,因为图中乱码的部分与 mysqli_connect_error() 得到的乱码一致。

由 mb_detect_encoding($conn->connect_error) 检测编码得到的结果显示,错误信息的编码也是 utf-8。

如何解决?

无意冒犯,但是鉴于很多答主尚未仔细阅读问题描述就匆忙下定论,我决定重复一下重要的事情:

没有安装 MySQL!

没有安装 MySQL!

没有安装 MySQL!

我只是想知道 mysqli 在没有安装 MySQL 的情况下得到的错误信息是什么。然而这个错误信息居然是乱码,所以才有了这个问题。

进展:在 console 中用 php 解释器运行能够得到正确的错误信息,而且发现是中文,如下图所示:

5cea765a8ce4ee5cccf054ea1d87608b.png

这个出错信息是由 Windows 系统的网络通信相关模块提供的(之前在代理服务器配置错误的情况下也经常在日志中看到这样的错误信息),所以目测这个锅要由 Win10 来背。

问题依然没有解决。虽然是中文,但是尝试了以 GB2312、GBK、GB18030 方式显示,亦为乱码,只不过乱码内容不同罢了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值