當面對json_encode() 返回空字串這一令人困惑的問題時,儘管使用了看似有效的PHP 數組,但深入探究根本原因至關重要。
在所介紹的案例中,發現罪魁禍首是編碼問題。 mb_detect_encoding() 函數可能會傳回錯誤回應,表示某些字串不是 UTF-8。結果,json_encode() 未能正確序列化資料。
幸運的是,這個謎題有解決方案。透過對受影響的字串使用 utf8_encode(),問題得到了解決。不過,需要注意的是,utf8_encode() 專門將 ISO-8859-1 字串編碼為 UTF-8。
如果輸入編碼不確定,請考慮使用 iconv() 或 mb_convert_encoding() 來獲得更大的靈活性處理各種編碼。
為了確保全面的 UTF-8 轉換,像這樣的遞歸函數utf8ize() 的值是無價的。透過將此函數應用於輸入數組,所有字串將被強制轉換為 UTF-8,為成功的 JSON 序列化鋪平道路。
以上是為什麼 PHP 中的 json_encode() 會傳回空字串,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!