test.html 页面代码如下.  获取输入总是乱码 $(function(){ 
        $("button").click(function(){ 
            $("div").load("data.aspx",{Title:escape("标题是我666"),Body:escape("内容是我666")}); 
        }); 
    });     <button>点击获取数据 </button> <br/> 
    <div style="border:1px solid red;padding:20px;"> </div>  
data.aspx 代码如下: if (Request.HttpMethod == "POST") 

                string title = Request.Form["Title"].Trim(); 
                string body = Request.Form["Body"].Trim();                 Response.Write("标题:" + title); 
                Response.Write(" <br/>"); 
                Response.Write("内容:" + body); 
                Response.Write(" <br/>"); 
                Response.End(); 

解决方案 »

  1.   

    后台aspx一律是GB2312编码的,为啥编码了escape()还不行?
      

  2.   

    escape("标题是我666"),
    改成
    encodeURI("标题是我666")试试
      

  3.   

    你收到的就是escape编码过的数据  然后在输出这个当然还是编码过后的数据
    unescape()解码
      

  4.   

    在.net 后台实现unescape(): public  string UnEscape(string str) 
        { 
            if (str == null) 
                return String.Empty;         StringBuilder sb = new StringBuilder(); 
            int len = str.Length; 
            int i = 0; 
            while (i != len) 
            { 
                if (Uri.IsHexEncoding(str, i)) 
                    sb.Append(Uri.HexUnescape(str, ref i)); 
                else 
                    sb.Append(str[i++]); 
            }         return sb.ToString();
        }
      

  5.   


    jQuery ajax发送和接收http请求好象是utf8编码,你试试把asp.net应用程序中responseEncoding和RequestEncoding改为UTF-8试试,我一直用默认的UTF-8编码,没见过乱码的问题。===================================================
    ASP.NET WebForm和ASP.NET MVC分页最终解决之道
      

  6.   

    解决1://为什么要用escape呢?去掉escape不就没问题了吗
    $(function(){ 
            $("button").click(function(){ 
                $("div").load("data.aspx",{Title:"标题是我666",Body:"内容是我666"}); 
            }); 
        }); 
    解决2://如果非要加上escape或者encodeURI的话,那么后台使用Server.UrlDecode处理
     if (Request.HttpMethod == "POST")
            {
                string title = Server.UrlDecode(Request.Form["Title"].Trim());
                string body = Server.UrlDecode(Request.Form["Body"].Trim());            Response.Write("标题:" + title);
                Response.Write(" <br/>");
                Response.Write("内容:" + body);
                Response.Write(" <br/>");
                Response.End();
            }