1
考慮以下簡單的ASP頁面 - 一個文本輸入的表單和一個提交按鈕:ajaxSubmit會導致不正確的字符解碼
<%
response.write(Request.Form("test") & "<br/>")
%>
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="jquery.form.js"></script>
<form action="test.asp" method="post" id="form" name="form" accept-charset="ISO-8859-1">
<input type="text" name="test" />
<input type="submit" id="sub" />
</form>
<script type="text/javascript" />
$('#form').submit(function() {
$('#form').ajaxSubmit({
success : function(responseText){
},
error : function(){
}
});
return false;
});
</script>
利用價值®
:
如果我提交表單沒有 AJAX(不使用底部腳本塊),該響應是®
。數據被編碼爲test=%AE
。
如果我通過 ajax提交表格(使用底部腳本塊),響應爲®
。數據被編碼爲test=%C2%AE
。
由於%C2%AE
是®
的有效編碼,這是一個vbscript問題嗎?
是啊,我開始寫這個問題之前,我想通了,在ajaxSubmit會以UTF-8編碼它,我做後,並沒有改寫的問題是「爲什麼ASP解碼UTF-8字符串作爲ACII?」昨天,我不能爲我的生命得到它解碼,作爲一個字符,而不是兩個(設置頁面編碼等) - 今天上午,我不能爲我的生命得到它重現行爲我昨天看到 - 其解碼正確,即使我設置頁面編碼和接收字符集是ISO-8859-1。在相關說明中,我討厭維護傳統的經典ASP cruft:P – Turch