PHPAjaxJSON中文亂碼各種問題解決辦法

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

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

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

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供陽西企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為陽西眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

 $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:如果有任何問題,歡迎提出

當(dāng)前標(biāo)題:PHPAjaxJSON中文亂碼各種問題解決辦法
當(dāng)前URL:http://bm7419.com/article8/jcigip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)企業(yè)建站網(wǎng)站設(shè)計、網(wǎng)站排名、商城網(wǎng)站、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)