首頁 > 後端開發 > php教程 > 如何使用 PHP 的 json_encode() 函數正確編碼 JSON 中的特殊字元?

如何使用 PHP 的 json_encode() 函數正確編碼 JSON 中的特殊字元?

Mary-Kate Olsen
發布: 2024-10-18 17:10:03
原創
320 人瀏覽過

How to Correctly Encode Special Characters in JSON with PHP's json_encode() Function?

JSON 編碼和特殊字元

使用json_encode() 函數對陣列進行編碼時,可能會發生包含特殊字元的元素被轉換為空字串。對於版權或商標符號等字符,此行為尤其明顯。

要解決此問題,請確保所有字串資料在編碼為 JSON 之前均採用 UTF-8 編碼。這可以透過將 array_map() 與 utf8_encode() 函數結合使用來實現:

<code class="php">$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);</code>
登入後複製

如 PHP 手冊中所述,json_encode() 要求所有字串資料都採用 UTF-8 編碼。透過在 JSON 編碼之前將陣列元素編碼為 UTF-8,我們確保特殊字元在 JSON 輸出中正確表示。

為了清楚起見,讓我們比較使用和不使用UTF-8 編碼數組的結果編碼:

不使用UTF-8 編碼:

<code class="php">$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}</code>
登入後複製

使用UTF-8 編碼:

<code class="php">$arr = array_map('utf8_encode', ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"]);
$json = json_encode($arr); // {"funds":"ComStage STOXX\u00c2\u00aeEurope 600 Techn NR ETF"}</code>
登入後複製

透過應用UTF-8 編碼,特殊字元可以在JSON 輸出中正確表示。請記住一致使用 utf8_encode() 以獲得正確的編碼。

以上是如何使用 PHP 的 json_encode() 函數正確編碼 JSON 中的特殊字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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