function filterWords(keywords) {
    return keywords.replace(new RegExp("-", "g"), "%2D").replace(/@/g, "%40").replace(new RegExp("\\*", "g"), "%2A").replace(new RegExp("\\+", "g"), "%2B").replace(new RegExp("\\/", "g"), "%2F").replace(new RegExp("\\.", "g"), "%2E");
}
var where="中国";
where=escape(where).replace(new RegExp("%", "g"), "$");
where =filterWords(where);
谁帮我在asp.net反替换回来一下

解决方案 »

  1.   

    试试:ttpUtility.UrlDecode( string )
      

  2.   


    public string filterWords(string keywords) 
    {
      keywords=Regex.Replace(keywords,"-","%2D");
      keywords=Regex.Replace(keywords,"@","%40");
      keywords=Regex.Replace(keywords,"\\*","%2A");
      keywords=Regex.Replace(keywords,"\\+","%2B");
      keywords=Regex.Replace(keywords,"\\/","%2F");
      keywords=Regex.Replace(keywords,"\\.","%2E");
      keywords=Regex.Replace(keywords,"%","$");
      return keywords;
    }
      

  3.   


    Microsoft.JScript.GlobalObject.unescape(
    字符串
    .Replace("%2D", "-")
    .Replace("%40", "@")
    .Replace("%2A", "*")
    .Replace("%2B", "+")
    .Replace("%2F", "/")
    .Replace("%2E", ".")
    .Replace("$", "%")
    );添加Microsoft.JScript引用
      

  4.   

    问一下大哥
    我设置断点后发现点问题
    我实际访问的url是
    http://localhost:2754/user/OrderListSeach-0-$u4E2D$u56FD%2B$u65E5$u672C$u2299$u2299$u2299$u2299$u2299-0.html
    其中 %2B 是 “+”号
    可是我在后台查看
    Request.Url的值 {http://localhost:2754/user/OrderListSeach-0-$u4E2D$u56FD+$u65E5$u672C$u2299$u2299$u2299$u2299$u2299-0.html?s=0&where=$u4E2D$u56FD+$u65E5$u672C$u2299$u2299$u2299$u2299$u2299&page=0}
    %2B变成了+号
    然后在
    Request.QueryString["where"]
    他的值竟然是
    $u4E2D$u56FD $u65E5$u672C$u2299$u2299$u2299$u2299$u2299
    “+”号没了
    这是怎么回事?
      

  5.   

    Try: string url=Server.UrlDecode(Request.QueryString["where"].ToString())
      

  6.   

    Request.Url =/user/OrderListSeach-0-$u4E2D$u56FD+$u2299$u2299$u2299$u2299$u2299-0.html
    +号都被转码了