$str = 'Success is 1% inspiration and %99 perspiration';
$urldecodeStr = urldecode($str);
$arr = [
'doc' => $urldecodeStr
];
echo $urldecodeStr; //输出: Success is 1% inspiration and � perspiration
echo "<br>";
var_dump(json_encode($arr));//返回false
是什麼原因造成json_encode無法轉換的?
要讓使用了$urldecodeStr
的陣列$arr
能被json_encode正常編碼為json字串,有什麼方法嗎?
問題
1.json_encode無法轉換是由於編碼問題,在$str 進行u8轉碼的時候 %99是一個亂碼。
2.目前並不知道你得%99是什麼鬼。
3.在你urldecode後,輸出就已經亂碼了
解決
1.使用iconv函數進行轉碼 $str
2.去掉%99(當然這個看你自己)
幹嘛直接urldecode沒有編碼的字串
字串有問題吧。 。 。 json原則上只支援UTF-8 編碼