php返回json資料中文顯示的問題

2022-08-15 16:18:11 字數 1621 閱讀 7621

json_encode返回資料的中文顯示成類似\u5723\u8bde\u8282\u5343
解決方法:

<?php 

function

notice())#ie", "iconv('ucs-2be', 'utf-8', pack('h4', '\\1'))", $str

);

//windows

//return preg_replace("#\\\u([0-9a-f])#ie", "iconv('ucs-2le', 'utf-8', pack('h4', '\\1'))", $str);

}?>

另外從網上搜尋到的其他方法

<?php /**

* json 生成,分析 支援中文 */

class

json_helper )#ie", "iconv('ucs-2be', 'utf-8', pack('h4', '\\1'))", $json

);

//windows

//return preg_replace("#\\\u([0-9a-f])#ie", "iconv('ucs-2le', 'utf-8', pack('h4', '\\1'))", $json);

} /**

* 分析json

*/public

static

function decode($str) }

?>

當使用php自帶的json_encode對資料進行編碼時,中文都會變成unicode,導致不可讀。如:對字串」廈門「進行json_encode後,輸出的是"\u53a6\u95e8"。

查詢了一下,有兩種方法:

1.將"\u53a6\u95e8"還原成「廈門」,使用如下的**:

$str= preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('ucs-2', 'utf-8', pack('h4', '\\1'))", $str);
2.先將中文字段urlencode,json_encode後,再用urldecode,也可以顯示中文。

$code = urldecode(json_encode(urlencode("廈門")));
php5.4版本,已經給json新增了乙個選項: json_unescaped_unicode。加上這個選項後,就不會自動把中文編碼了。

echo json_encode("廈門", json_unescaped_unicode);
另,由於 json_encode 和 json_decode只支援utf-8編碼的字元,gbk的字元要用json就得轉換一下,附自己寫的gbk轉utf-8的**:

/*

字串gbk轉碼為utf-8,數字轉換為數字。

*/function ct2($s

) else}/*

批量處理gbk->utf-8

*/function icon_to_utf8($s

) }

else

return$s;

}echo json_encode(icon_to_utf8("廈門"));

php返回json資料中文顯示的問題

當使用php自帶的json encode對資料進行編碼時,中文都會變成unicode,導致不可讀。如 對字串 廈門 進行json encode後,輸出的是 u53a6 u95e8 解決方法 1.str preg replace u 0 9a f ie iconv ucs 2 utf 8 pack h...

Php如何返回json資料

php 返回json,xml,jsonp 等格式的資料 返回 json 資料 arr array a 1,b 2 exit json encode data 注意 如果不加 header 直接輸出 json encode 的值的話,返回的是字串不是物件,js那邊就需要先 eval data 轉化為物...

php如何返回json資料

php返回json,xml,jsonp等格式的資料 返回json資料 arr array a 1,b 2 exit json encode arr 注意 如果不加header直接輸出json encode的值的話,返回的是字串不是物件,js那邊就需要先eval data 轉化為物件,在取值 返回xm...