JSON_UNESCAPED_UNICODE的作用與理解

背景

在使用json_encode轉換的時候,默認情況下中文會轉換成 \u*** 的格式, 不僅不可讀,還會在一定程度上增加傳輸的數據量.

<?php
echo json_encode("中文");
//"\u4e2d\u6587"

在PHP5.4, 這個問題得以解決, Json新增了一個選項: JSON_UNESCAPED_UNICODE,加上之後就可以正確輸出中文。
詳見鳥哥的文章,讓Json更懂中文

總結

對這個選項的作用和用法都沒有歧義,有點不同的是對這個組合詞 JSON_UNESCAPED_UNICODE 的理解,鳥哥文章中說是"顧名思義,不要編碼Unicode",實際上這裏的意思並不明顯,escape是避開,避免的意思,前面加上 un 表示否定,是不要避開不要避免,應該是說把Unicode當成本身處理,不要避開Unicode這種字符或格式,即承認它,再結合官網對這個選項的解釋,(逐個字符的編碼多字節Unicode字符)
Encode multibyte Unicode characters literally (default is to escape as \uXXXX).
,雖然最後結果是一樣的,但從字義上其實很難一下子看出來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章