PHP 使用Unicode 字元對JSON 進行解碼與編碼
Unicode 字元解碼問題
Unicode 字元解碼問題
Unicode 字元解碼問題
Uni嘗試時要解碼包含unicode 字元的JSON,如果字元落在特定範圍內,您可能會遇到問題。具體來說,JSON 字串中禁止出現「」、「」等字元。此外,不允許使用控製字元。
UTF-8 編碼和解碼
要解決此問題,您可以使用 utf8_encode 允許使用 json_decode 解碼字串。然而,這可能會導致角色被破壞。例如,“Odómetro”將轉換為“Odómetro”。
重新編碼和字元轉義
重新編碼陣列後,字元將轉義為ASCII,根據JSON 規範是正確的:「Tag」=>「Odu00f3metro 」。若要取消轉義字符,您可以使用 json_encode 的 JSON_UNESCAPED_UNICODE 選項。但是,這僅適用於 PHP 5.4 或更高版本。
$json = json_encode($array, JSON_UNESCAPED_SLASHES); // Replace escaped unicode characters with their UTF-8 equivalents $json = preg_replace('/\\u([0-9a-fA-F]{4})/', '&#x;', $json);使用正規表示式的替代解決方案如果您僅限於PHP 5.3,則可以使用基於正規表示式的解決方案解決方案:透過使用JSON_UNESCAPED_SLASHES 標誌,可以防止斜線() 在JSON 字串中轉義。然後,正規表示式模式會比對轉義的 unicode 字元 (u####) 並將其替換為 UTF-8 等效字元。
以上是如何在 PHP 中使用 Unicode 字元對 JSON 進行解碼和編碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!