有时候再有Thinkphp6做开发的时候,会遇到系统报500的错误,但是页面却没有任何错误信息,这是因为错误信息的字符编码出现问题而无法返回造成的,我们只需要强制转换一下exception的编码就可以了。
一、找到文件
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;
}
三、在文件中搜索如下数据,大约179行的位置
Server/Request Data
四、当前行修改为如下
'Server/Request Data' => $this->changeToUtf8($this->app->request->server()),
五、重新刷新页面试一下,发现又可以愉快的玩儿BUG了。