簡體   English   中英

ajaxSubmit導致不正確的字符解碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM