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反替换回来一下
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;
}
Microsoft.JScript.GlobalObject.unescape(
字符串
.Replace("%2D", "-")
.Replace("%40", "@")
.Replace("%2A", "*")
.Replace("%2B", "+")
.Replace("%2F", "/")
.Replace("%2E", ".")
.Replace("$", "%")
);添加Microsoft.JScript引用
我设置断点后发现点问题
我实际访问的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
“+”号没了
这是怎么回事?
+号都被转码了