搜尋
首頁後端開發PHP問題如何解決php json_encode亂碼的問題

php json_encode亂碼的解決方法:先把資料庫編碼和頁面編碼都改為UTF8;然後使用「json_encode」將PHP中的array數組轉為JSON字串;最後用函數urlencode處理下即可。

如何解決php json_encode亂碼的問題

PHP json_encode中文亂碼解決方法

  相信很多人在使用Ajax與後台php頁面互動的時候都碰到過中文亂碼的問題。 JSON作為一種輕量級的資料交換格式,備受親青睞,但是用PHP 作為後台交互,容易出現中文亂碼的問題。 JSON和js一樣,對於客戶端的字元都是以UTF8的形式進行處理的,也就是說,使用JSON作為提交和接收的資料格式時字元都採用UTF8編碼處理,當我們的頁面編碼和資料庫編碼不是採用UTF8的時候,就極容易出現中文亂碼的問題。解決方法自然是用js或 PHP處理JSON資料的時候都採用UTF8的形式。

  PHP5.2或以上的版本把json_encode作為內建函數來用,給網站製作者帶來了很大的方便,但是我們必須注意到json_encode只支援UTF8編碼的字符,否則,中文亂碼或者空值就出現了。

解決方法分為以下兩個步驟。

Step1

保證在使用JSON處理的時候字元是以UTF8編碼的。具體我們可以把資料庫編碼和頁面編碼都改為UTF8。當然喜歡用gbk編碼的話,可以在進行JSON處理前,把字元轉為UTF8形式。在PHP中有以下方法:

 <?php  
      $data="JSON中文";  
      $newData=iconv("GB2312","UTF-8//IGNORE",$data);  
      echo $newData;  
      //ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符都不会被保存。  
      //或是("GB2312","UTF-8",$data);  
 ?>

Step2

 後台PHP頁面(頁面編碼為UTF-8或已經把字元轉為UTF-8)使用json_encode將PHP中的array陣列轉為JSON字串。例如:

 <?php  
     $testJSON=array(&#39;name&#39;=>&#39;中文字符串&#39;,&#39;value&#39;=>&#39;test&#39;);  
    echo json_encode($testJSON);  
 ?>

查看輸出結果為:

{“name”:”\u4e2d\u6587\u5b57\u7b26\u4e32″,”value”:”test”}

可見即使用UTF8編碼的字符,使用json_encode也出現了中文亂碼。解決方法是在使用json_encode之前把字元用函數urlencode()處理一下,然後再json_encode,輸出結果的時候在用函數urldecode()轉回來。具體如下:

 <?php  
     $testJSON=array(&#39;name&#39;=>&#39;中文字符串&#39;,&#39;value&#39;=>&#39;test&#39;);  
     //echo json_encode($testJSON);  
     foreach ( $testJSON as $key => $value ) {  
         $testJSON[$key] = urlencode ( $value );  
     }  
     echo urldecode ( json_encode ( $testJSON ) );  
 ?>

查看輸出結果為:

{“name”:”中文字符串”,”value”:”test”}

到此,成功地輸出了中文字元。隨 意使用json_encode吧。這樣子在PHP後台輸出的JSON字串在前台javascript中Ajax接收後eval出來也不會出現中文亂碼, 因為js在處理JSON格式資料是也是以UTF8的形式進行的,與PHP類似,故接收PHP頁面的JSON字串不會出現問題。

更多相關文章,請造訪PHP中文網

以上是如何解決php json_encode亂碼的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。