今天網站遇到個問題,后端返回異常,但是瀏覽器狀態碼200,但是看不到結果。經過排查發現,我們在返回結果的時候使用了json_encode返回給前端,結果里面的字符編碼異常,導致json_encode異常,但是php沒有報錯,也沒有錯誤日志,經過一步步調試,最終找到這個問題,特此記錄。
修復代碼如下:
<?php
$v = 'PHNjcmlwdCBsYW5nPY2r2rHK4nJpcHRcPg==';
$slices = explode(',', $v);$matchdata = array_map('base64_decode', $slices);
$json_encode = json_encode(mb_convert_encoding($matchdata, 'UTF-8'));
if ($json_encode === false) {echo "JSON encoding failed. Error: " . json_last_error_msg();
} else {echo $json_encode;
}