首頁 > 後端開發 > php教程 > 如何使用 PHP 的 `json_encode` 使用 UTF-8 對 JSON 中的非 ASCII 字元進行編碼?

如何使用 PHP 的 `json_encode` 使用 UTF-8 對 JSON 中的非 ASCII 字元進行編碼?

Linda Hamilton
發布: 2024-10-27 00:15:02
原創
266 人瀏覽過

How to Encode Non-ASCII Characters in JSON with UTF-8 Using PHP's `json_encode`?

如何以UTF-8 編碼而不是Unicode 返回PHP json_encode

使用PHP json_encode

使用PHP 的json_encode 函數時,默認為非code格式編碼。這會導致 JSON 回應包含“u00e1”等轉義序列,而不是“á”等 UTF-8 編碼字元。
<code class="php">$arr = array('a' => 'á');
echo json_encode($arr);</code>
登入後複製

舉個例子:

<code class="json">{"a":"\u00e1"}</code>
登入後複製

輸出將是:

要解決此問題並傳回包含UTF-8 編碼字元的JSON 回應,您可以解決此問題並傳回包含UTF-8 編碼字元的JSON 回應,您可以使用以下方法:

PHP 5.4 :

<code class="php">echo json_encode($arr, JSON_UNESCAPED_UNICODE);</code>
登入後複製

從PHP 5.4 開始,json_encode 提供了JSON_UNESCAPED_UNICODE 選項。透過設定此選項,非 ASCII 字元將採用純 UTF-8 編碼,不含轉義序列。

較舊的PHP 版本:

對於PHP 之前的版本5.4,您可以實作自己的JSON 編碼器,省略對非ASCII 字元的編碼。或者,您可以利用 Pear 的 JSON 編碼器並從編碼函數中刪除第 349 至 433 行。 請注意 {"a":"u00e1"} 和 {"a":"á"} 之間的區別純粹是用 JSON 語法編寫的。兩種表示法都會被 JSON 解碼器解碼為相同的 Unicode 值。

以上是如何使用 PHP 的 `json_encode` 使用 UTF-8 對 JSON 中的非 ASCII 字元進行編碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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