產(chǎn)生原因
主要有2個原因
1 xtmlhttp 返回的數(shù)據(jù)默認的字符編碼是utf-8,如果前臺頁面是gb2312或者其它編碼數(shù)據(jù)就會產(chǎn)生亂碼
2 post方法提交數(shù)據(jù)默認的字符編碼是utf-8,如果后臺是gb2312或其他編碼數(shù)據(jù)就會產(chǎn)生亂碼

解決方法
進一步整理中
推薦方法,前臺后臺都用utf-8編碼,這樣可以省不少麻煩,從根本上解決了亂碼問題.優(yōu)點是效率高,而且符合目前的形式,utf-8編碼本身就是一種比較優(yōu)秀的編碼,沒有語言限制.缺點只能調(diào)用自己的后臺編碼或者其他的utf-8的編碼.
前臺更改為

 程序代碼

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


后臺asp中第一行加入如下代碼

 程序代碼

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<% Response.Charset="utf-8"; %>
<% Session.CodePage=65001; %>


后臺如果有html代碼也需保證

 程序代碼

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">



補救的方法是進行編碼轉(zhuǎn)換.可以在客戶端也可以在服務(wù)器端進行編碼轉(zhuǎn)換.優(yōu)點是沒有任何限制,缺點效率低.
可參考本站的WEB代理(ASP版),這里是服務(wù)端的asp編碼,由于腳本語言是javascript,所以直接復(fù)制到客戶端也可以使用!

補充
如果是老系統(tǒng)升級ajax,如果系統(tǒng)是gb2312的話,也無需大修改
新建立一個ajax的后臺頁面編碼是utf-8,前臺可以為任意編碼,后臺頁面負責(zé)添加數(shù)據(jù)庫,可保證存入數(shù)據(jù)庫后無亂碼