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

來源:互聯網
上載者:User

中文如果用表單提交的話,不會出現亂碼,而用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")轉換後返回。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.