TP6 伺服器響應500時沒有錯誤資訊的解決方案
阿新 • • 發佈:2021-01-09
重點!!!!
首先,確認你的電腦管理員賬戶是否含有中文!!!!!!就像下面這種:所以出現了沒有錯誤提示
檢視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; }