您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何解決json中文字符串中文亂碼問題,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
案例一
今天面試被問到這個問題,明明以前是知道的,半年沒碰之后,硬是沒有想起來,只好硬著頭皮說,tp自帶的json助手函數是不會有這個問題的,場面一度十分尷尬。
<?phpheader("Content-type:application/json;charset=utf-8");$array = ['中文','234','abc'];echo json_encode($array)
返回結果:修改前
PHP5.4版本后,已經給Json新增了一個選項: JSON_UNESCAPED_UNICODE。加上這個選項后,就不會自動把中文編碼了。
修改后的代碼
header("Content-type:application/json;charset=utf-8");$array = ['中文','234','abc'];echo json_encode($array,JSON_UNESCAPED_UNICODE);
結果:修改后
案例二
PHP 和 JavaScript 交互其實很方便,PHP 原生也提供了對 JSON 格式的支持。主要包括 JSON 編碼和解碼兩個函數:
代碼如下:
json_endoce: http://cn.php.net/json_encode
json_dedoce: http://cn.php.net/json_decode
json_encode — 對變量進行 JSON 編碼,并返回 value 值的 JSON 形式,例如:
<?php$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);echo json_encode($arr);?>
以上代碼執行后輸出:
{"a":1,"b":2,"c":3,"d":4,"e":5}
假如要編碼的數據源(一般是一個數組),value 中包含中文,經過 json_encode 處理后輸出的是 unicode 編碼。
<?php$arr = array ('a'=>'億速云');echo json_encode($arr);?>
以上代碼執行后輸出:
{"a":"\u811a\u672c\u4e4b\u5bb6"}
PHP 底層已經做了 unicode 處理,如果嫌它不夠直觀,可以利用 urlencode 和 urldecode 方法繞過這個轉碼為 unicode 的過程:
先urlencode編碼再urldecode解碼
$arr = array ('a'=>urlencode('億速云'));echo urldecode(json_encode($arr));
以上代碼執行后輸出:
{"a":"億速云"}
以上就是如何解決json中文字符串中文亂碼問題,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。