溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP Ajax JSON中文亂碼各種問題解決辦法

發(fā)布時間:2020-06-21 09:07:10 來源:網(wǎng)絡(luò) 閱讀:1900 作者:村長愛技術(shù) 欄目:web開發(fā)

1、GBK/GB2312通過php的json_encode函數(shù)漢字會輸出null

//gbk編碼
$gbk = '中文';
echo json_encode($gbk);//null

原因:因為json_encode只支持utf-8的編碼,對于英文沒有什么影響,但是對于中文就會有問題了。
解決辦法:

 $gbk = urlencode('中文');
 echo urldecode(json_encode($gbk));//中文

并不是非得用urlencode編碼,也可以用別的編碼,例如base64_encode等等,大家可以多嘗試一下

2、ajax調(diào)用后端gbk編碼接口會出現(xiàn)亂碼

原因:因為Ajax返回的數(shù)據(jù)默認(rèn)的字符編碼是utf-8

解決辦法:  在后端,如php加上

header('Content-Type:text/html;charset=utf-8');//如果是json最好用Content-Type: application/json或text/plain

3、utf8編碼的json_encode也會被編碼,變成不可讀的, 類似”\u***”的格式,Ajax調(diào)用也同樣的問題
原因:json_encode對中文支持不好

解決辦法:(1)可以參考第一種方法;(2)從PHP5.4開始,在json_encode中有了第二個參數(shù),可以通過傳入JSON_UNESCAPED_UNICODE解決,例如

echo json_encode('中文',JSON_UNESCAPED_UNICODE);//中文

推薦:采用UTF8編碼,php盡量升級到5.4以上的版本

PS:如果有任何問題,歡迎提出


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI