ajax保存乱码,Ajax 乱码详细
前面說了 Ajax 亂碼的原因,以及解決亂碼的示例,下面來個全面的分析。
XMLHTTP 返回的數據默認的字符編碼是 UTF-8,如果前臺頁面是 GB2312 或者其它編碼數據就會產生亂碼。
POST 方法提交數據默認的字符編碼是 UTF-8,如果后臺是 GB2312 或其他編碼數據就會產生亂碼。
后臺解決辦法:
針對靜態文件:
HTM、XML 文件是靜態的,所以只要保存時保存為 UTF-8 編碼就可以了,以 XHTML 為例:
改為
改為
并保存,原理及常見問題請參見:Ajax 亂碼。
針對動態文件:
ASP 文件一般是動態的,通用的辦法也是將該 ASP 文件保存為 UTF-8 編碼。使用 response.charset = "utf-8" 仍會造成亂碼。
前臺解決辦法:
針對 GET 數據:
對字符串進行編碼,比如將 request.asp?a=漢字 編碼為:request.asp?a=%E6%B1%89%E5%AD%97,這就需要一個函數。在 ASP?中我們在《UTF-8 Unicode Ansi 漢字GB2321幾種編碼轉換程序》一文中作過相關介紹。而在 JavaScript 中,幸運的是這個函數已經被集成,我們可以直接在 JavaScript 使用。我們建議使用encodeURIComponent對參數值進行編碼,它可以編碼所有的字符,而encodeURI不對“:”、“/”、“;”和“?”進行編碼。對于參數值,顯然應該是對所有字符進行編碼。具體可見示例。
針對 POST 數據:
增加一句:
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
具體可見示例。
相關閱讀
總結
以上是生活随笔為你收集整理的ajax保存乱码,Ajax 乱码详细的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 口腔取模过程及注意事项_康贝齿科首家引进
- 下一篇: oracle insert select