|
我的理解是,我在寫源碼的時候,一般用記事本寫,保存的時候默認用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")轉換后返回。
php技術:解決ajax+php中文亂碼的方法詳解,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。