首頁  >  文章  >  後端開發  >  如何在 PHP 中使用 Unicode 字元對 JSON 進行解碼和編碼?

如何在 PHP 中使用 Unicode 字元對 JSON 進行解碼和編碼?

Linda Hamilton
Linda Hamilton原創
2024-10-31 13:18:30509瀏覽

How to Decode and Encode JSON with Unicode Characters in PHP?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn