在 PHP 中使用 json_encode 時,如何防止 Unicode 字元被編碼為十六進位實體?

Patricia Arquette
發布: 2024-10-31 01:32:03
原創
948 人瀏覽過

How can I prevent Unicode characters from being encoded as hexadecimal entities when using json_encode in PHP?

在PHP 中處理UTF-8 字串:json_encode 和JSON_UNESCAPED_UNICODE

在涉及多語言內容的PHP.行為可能會引發問題。據觀察,Unicode 字元經常以十六進位實體結束。

範例:

輸入: echo $text;
輸出: "Баиа дани 🎜 к🎜> 🎜>

輸入: json_encode($text);
輸出: "u0411u0430u0437u0430 u0434u0430043u 43au0430。 >

預設情況下,json_encode 將Unicode 字串編碼為十六進位實體。這是 JSON 中的常見做法,以確保與可能不支援 Unicode 的舊系統相容。

解決方案:JSON_UNESCAPED_UNICODE

在 PHP 5.4.0 中引入,JSON_UNESCAPED_UNICODE 標誌可讓您繞過此轉換。指定後,它指示 json_encode 直接輸出 UTF-8 字元。

用法:

使用此標誌,輸出將保持其原始Unicode 字元編碼:

透過使用JSON_U字元編碼:
<code class="php">json_encode($text, JSON_UNESCAPED_UNICODE);</code>
登入後複製

透過使用JSON_UNESNESig_UICODE 標誌,標誌您可以在JSON 輸出中保留原始Unicode 字元。這在處理多語言內容或與需要真正 Unicode 支援的系統整合時特別有用。
<code class="php">\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430.</code>
登入後複製

以上是在 PHP 中使用 json_encode 時,如何防止 Unicode 字元被編碼為十六進位實體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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