為什麼php與json互動時會出現中文亂碼?由於json與js一樣,對於客戶端的字元是以utf8的形式處理,即json提交或接受返回的字元是以utf8形式處理,當與php互動時,如果資料庫編碼、php頁面編碼不採用utf8格式時,php與json互動時中文就會產生亂碼。
解決php json中文亂碼的方法
在知道了php與json互動產生中文亂碼的原因後解決的方法其實就簡單很多。
解決php json中文亂碼方法一:保證資料庫、前後臺php頁面編碼一致
最簡答的解決php json中文亂碼的方法就是保證資料庫編碼、php頁面編碼統一採用utf8格式,對於php入門學習者來說建站時資料庫最好使用utf8格式,可減少不少麻煩。
解決php json中文亂碼方法二:配置使用php函式urlencode與js函式decodeuri()
當php使用json與前台js互動時,在使用json_encode函式之前需要使用urlencode函式進行url編碼,在js客戶端通過js函式decodeuri()進行url解碼後再讀取中文資訊。
注意:當在php頁面中通過json進行互動,比如將陣列轉換成json格式時,首先請使用urlencode函式對陣列key和value進行url編碼然後再使用json_encode函式和urldecode函式。
解決php json中文亂碼方法三:使用字串編碼轉換函式
當由於各種原因,資料庫編碼、php頁面編碼不一致時,比如現有的資料庫編碼使用gb2312,這時在使用json互動時,就需要使用字串編碼轉換函式進行字符集之間的轉換。常用的函式有iconv,由於iconv需要php配置環境支援,如果不支援,你可以通過自行編寫gbk與utf8編碼轉換函式實現編碼轉換,具體可參考php ajax傳值中文字元亂碼解決教程。
至此,php json中文字元亂碼的三種解決方法就介紹完了,其實在php開發中,遇到類似php與ajax/js進行互動,產生中文亂碼時基本都是使用這些方法,思路是類似的。
linux中文亂碼解決方法
在使用centos 系統時,安裝的時候可能你會遇到英文的centos系統,在這中情況下安裝centos系統時是預設安裝 即英文 安裝完畢後,出現的各種中文亂碼。那麼,我們如何解決這種問題呢。一 centos系統訪問 g.cn 發現中文亂碼。於是用以前的方式 yum y install fonts c...
Android中文亂碼解決方法
android中文亂碼解決方法 在手機與pc之間進行socket或http通訊時,常常會出現中文亂碼問題,其主要原因在於手機端字元編碼預設為utf 8,而伺服器pc端預設為gbk或gb2312。手機到pc的資訊編碼傳遞 接收 解碼顯示的過程為 手機端以utf 8編碼資訊 包括漢字 寫入socket輸...
Tomcat Mysql中文亂碼解決方法
在tomcat mysql開發中,中文亂碼問題是乙個比較常見的問題,在查詢網路相關資料後,我把我的實踐經驗總結於本文。本文主要解決頁面亂碼和資料庫亂碼2個問題。1 頁面亂碼。1 編寫乙個過濾器。public class setcharacterencodingfilter implements fi...