程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 解決ajax+php中文亂碼的方法詳解

解決ajax+php中文亂碼的方法詳解

編輯:PHP綜合
中文如果用表單提交的話,不會出現亂碼,而用ajax提交就會出現亂碼,這是什麼原因呢?

我的理解是,我在寫源碼的時候,一般用記事本寫,保存的時候默認用ANSI編碼,源碼中也沒有用“<meta http-equiv=Content-Type content=text/html;charset=UTF-8>”或“header('Content-Type:text/html;charset=UTF-8');”指定網頁編碼,於是在浏覽器中顯示時它的編碼被認定為“GB2312”。當前台向後台傳遞數據的時候,用表單提交的話,前後台之間用“GB2312”編碼交流,不會出現亂碼;而用ajax提交的話,ajax在前台把要發送的數據編碼從“GB2312”轉換 成“UTF-8”後再傳給後台,然後再把接收到的後台返回的數據當成是 “UTF-8”而把它轉換 成“GB2312”後顯示在前台頁面上,這樣亂碼就產生了。
如圖:


所以要解決亂碼,要在後台進行數據編碼轉換,後台接收到的數據用PHP的mb_convert_encoding("要轉換的數據","gb2312","UTF-8")進行轉換後存儲到數據庫。而後台返回到前台的中文數據也要用mb_convert_encoding("要返回的數據","UTF-8","gb2312")轉換後返回。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved