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

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



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

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