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