如何在不轉義Unicode 字元的情況下以UTF-8 編碼JSON
在PHP 中, json_encode() 函數透過以下方式將值轉換為JSON 字串:但是,預設情況下,它將Unicode 字元轉義為其Unicode 代碼點表示形式。在某些輸出需要 UTF-8 編碼而不是 Unicode 編碼的情況下,這可能是不可取的。
考慮以下範例:
<code class="php">$arr = ['a' => 'á']; echo json_encode($arr);</code>
預期輸出為「a」:「á ",但實際結果是{"a":"u00e1"}。這是因為 json_encode() 函數已將字元 'á' 編碼為其 Unicode 碼位表示形式,即「u00e1」。
解決方案:
雖然有5.4 之前的PHP 版本中沒有內建選項來停用json_encode() 中的Unicode 轉義,有一些解決方法可以實現此目的:
<code class="php"><?php header('Content-Type: application/json'); $arr = ['a' => 'á']; echo json_encode($arr, JSON_UNESCAPED_UNICODE); ?></code>
這將輸出所需的 JSON 字串: "a": "á"。
以上是如何在 PHP 中以 UTF-8 編碼 JSON,而不轉義 Unicode 字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!