首頁 > 後端開發 > php教程 > 為什麼某些 Unicode 字元在 JSON 中顯示為'\u....”序列?

為什麼某些 Unicode 字元在 JSON 中顯示為'\u....”序列?

Patricia Arquette
發布: 2024-12-19 19:30:11
原創
966 人瀏覽過

Why Do Some Unicode Characters Appear as `u....` Sequences in JSON?

為什麼「特殊」Unicode 字元會出現用u.... 編碼的JSON 序列

使用PHP 編碼「特殊」Unicode 字元時json_encode 函數中,它們通常顯示為以「u」為前綴的不熟悉的字串文字。此行為是 JSON 的字元編碼機制所固有的,並不表示任何編碼錯誤。

JSON 允許將字元表示為 u.... 轉義序列,其中 .... 表示字元的 Unicode 代碼點。這相當於 ECMAScript (JavaScript) 中字串文字的形成方式。

例如,字元「馬」在 JSON 中可以表示為「馬」或「u99ac」。兩個文字代表相同的字元並且同等有效。當由相容的 JSON 解析器解析時,它們都會產生相同的字串。

預設情況下,PHP 的 json_encode 支援 u.... 非 ASCII 字元的轉義序列。但是,您可以透過在 PHP 5.4 或更高版本中指定 JSON_UNESCAPED_UNICODE 標誌來覆寫此首選項。這將導致 JSON 輸出帶有文字字元而不是轉義序列:

json_encode(['foo' => '馬'], JSON_UNESCAPED_UNICODE); // Output: {"foo":"馬"}
登入後複製

需要注意的是,指定 JSON_UNESCAPED_UNICODE 是個人偏好,而不是在 JSON 中傳輸 Unicode 字元的要求。轉義序列和文字字元在 JSON 表示中同樣有效。

以上是為什麼某些 Unicode 字元在 JSON 中顯示為'u....”序列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板