[英]ajaxSubmit causes incorrect character decoding
考慮以下簡單的Asp頁面-具有一個文本輸入和一個提交按鈕的表單:
<%
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問題嗎?
如果我提交的表單不帶ajax(不使用底部腳本塊),則響應為®。 數據被編碼為test =%AE。
這是因為accept-charset="ISO-8859-1"
。 另一方面, ajaxSubmit
始終使用UTF-8,而忽略任何accept-charset
。 (這可能是因為對AJAX的限制意味着在某些情況下任何其他編碼都會中斷)。
我建議刪除accept-charset
屬性(無論如何它都不會像在IE中那樣工作),並將頁面顯式地作為UTF-8提供。 這應該擺脫®
問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.