使中文不被json_encode編碼成unicode的方法


使用 php 自帶的 json_encode 函數(shù)對數(shù)據(jù)進行編碼時,中文都會變成 unicode,導致不可讀,

并且增加傳輸數(shù)據(jù)的大小

比如:

對字符串“json在線解析工具”進行 json_encode 后,

輸出的是”\u006a\u0073\u006f\u006e\u5728\u7ebf\u89e3\u6790\u5de5\u5177”,那么如何使得中文不被 json_encode 不編碼成 unicode 呢,有兩種方法:

1. 先將中文字段 urlencode,json_encode 后,再用 urldecode,也可以顯示中文。

echo urldecode(json_encode(urlencode("json在線解析工具")));

2. 如果使用的 PHP 版本是 5.4 以上的版本,

json_encode 函數(shù)已經(jīng)新增了一個選項: JSON_UNESCAPED_UNICODE。

加上這個選項后,就不會自動把中文編碼了。

echo json_encode("json在線解析工具", JSON_UNESCAPED_UNICODE);


原文鏈接:PHP使中文不被json_encode編碼成unicode的方法