JSON 編碼與特殊字元
使用json_encode() 函數對陣列進行編碼時,可能會發生包含特殊字元的元素被轉換為空字串。對於版權或商標符號等字符,此行為尤其明顯。
要解決此問題,請確保所有字串資料都經過 UTF-8 編碼,然後再將其編碼為 JSON。這可以透過將 array_map() 與 utf8_encode() 函數結合使用來實現:
$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);
如 PHP 手冊所述,json_encode() 要求所有字串資料都採用 UTF-8 編碼。透過在 JSON 編碼之前將陣列元素編碼為 UTF-8,我們可以確保在 JSON 輸出中正確表示特殊字元。
為了清楚起見,讓我們比較使用和不使用UTF-8 編碼數組的結果編碼:
無UTF-8 編碼:
$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}
使用UTF-8 編碼:
$arr = array_map('utf8_encode', ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"]);
$json = json_encode($arr); // {"funds":"ComStage STOXX\u00c2\u00aeEurope 600 Techn NR ETF"}
透過應用UTF-8 編碼,特殊字元可以在JSON 輸出中正確表示。請記住一致使用 utf8_encode() 以獲得正確的編碼。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3