TP6 服务器响应500时没有错误信息的解决方案

重点!!!!

首先,确认你的电脑管理员账户是否含有中文!!!!!!就像下面这种:所以出现了没有错误提示

  

查看nginx日志显示\vendor\topthink\framework\src\think\response\Json.php  50行有问题,于是打印了一下显示$data里面有编码问题

     

所以打印$data看到里面有斐波那妾几个字(话说斐波那妾有什么罪??)

 

于是,好吧,网上各种百度修改管理员名称。。。。终于成功了,刷新->还是一样,想了想可能win10  C盘“用户”那两个字不会也有问题吧?

算了,要从根本上解决问题!!

于是,处理一下$data再传过去不就完了

找到vendor/topthink/framework/src/think/exception/Handle.php

在最后加上下面这个方法

    /**
     * 将获取的服务器信息中的中文编码转为utf-8
     * @access protected
     * @param $data array
     * @return array                 转化后的数组
     */
    protected function changeToUtf8(array $data): array
    {
        foreach ($data as $key => $value) {
            $data[$key] =  mb_convert_encoding($value, "UTF-8","GBK, GBK2312");
        }

        return $data;
    }

再调用一下

 

 

OK   解决了~

 

 

posted @ 2021-01-09 11:31  Justin_Xean  阅读(2224)  评论(0编辑  收藏  举报
dddedeeded