在對 JSON 資料進行解碼和編碼時,如何處理 PHP 中的 Unicode 字元?

Barbara Streisand
發布: 2024-11-03 13:26:02
原創
588 人瀏覽過

How do you handle Unicode characters in PHP when decoding and encoding JSON data?

在PHP 中使用Unicode 字元解碼和編碼JSON

處理包含Unicode 字元的JSON 資料時,在解碼過程中保持完整字元性至關重要和編碼。在 PHP 中,處理 Unicode 字元可能會帶來一些挑戰。

使用 Unicode 字元解碼 JSON

預設情況下,PHP 的 json_decode() 函數期望 JSON 字串為 UTF-8編碼。如果 Unicode 字元不是用 UTF-8 編碼的,則它們將無法正確解碼。要解決此問題,請在解碼JSON 字串之前使用utf8_decode():

<code class="php">$json = '{"Tag":"Odómetro"}';
$decoded = json_decode(utf8_decode($json));</code>
登入後複製

使用Unicode 字元編碼JSON

修改JSON 資料後,需要進行進行修改編碼它會返回JSON 字串。預設情況下,json_encode() 轉義 Unicode 字元以符合 JSON 標準。若要防止轉義Unicode 字符,請使用JSON_UNESCAPED_UNICODE 標誌:

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

取消轉義編碼的Unicode 字符

如果需要取消轉義的Unicode 字符,可使用html_entity_decode () 函數:

<code class="php">$unescaped = html_entity_decode($encoded);</code>
登入後複製

PHP 版本

請注意,JSON_UNESCAPED_UNICODE 標誌僅在PHP 5.4 及更高版本中可用。對於早期版本,您可以使用正規表示式來搜尋和取消轉義 Unicode 字元:

<code class="php">$regex = '/\\u([0-9a-fA-F]{4})/';
$unescaped = preg_replace($regex, '&#x\1;', $encoded);</code>
登入後複製

以上是在對 JSON 資料進行解碼和編碼時,如何處理 PHP 中的 Unicode 字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!