1

考虑以下简单的 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 问题吗?

4

1 回答 1

1

如果我提交没有 ajax 的表单(不使用底部脚本块),则响应为 ®。数据被编码为 test=%AE。

这是因为accept-charset="ISO-8859-1". ajaxSubmit另一方面,始终使用 UTF-8,忽略任何accept-charset. (这可能是因为 AJAX 的限制意味着在某些情况下任何其他编码都会中断)。

我建议删除该accept-charset属性(无论如何它在 IE 中都不能正常工作)并将页面明确地作为 UTF-8 提供。这应该可以®解决问题。

于 2013-04-18T14:50:32.107 回答