考虑以下简单的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问题?
答案 0 :(得分:1)
如果我提交没有ajax的表单(不使用底部脚本块),则响应为®。数据编码为test =%AE。
这是因为accept-charset="ISO-8859-1"
。另一方面,ajaxSubmit
始终使用UTF-8,忽略任何accept-charset
。 (这可能是因为对AJAX的限制意味着在某些情况下任何其他编码都会中断)。
我建议删除accept-charset
属性(无论如何都不会像在IE中那样工作)并将页面explicitly作为UTF-8提供。这应该摆脱®
问题。