首頁 >後端開發 >php教程 >在 PHP 中使用 json_encode 時,如何防止 Unicode 字元被編碼為十六進位實體?

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

Patricia Arquette
Patricia Arquette原創
2024-10-31 01:32:03997瀏覽

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

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