如何包含在查询字符串中的特殊字符
问题描述:
以下网址工作正常:如何包含在查询字符串中的特殊字符
但是,如果我想要把一些特殊字符`PARAM一样,/,\,那么URL变为:
或
http://localhost/mysite/mypage?param=http://www.mysite.com/page2?a= \ & B = ...
这是行不通的。我该如何解决这个问题?
答
在JavaScript中,您可以使用encodeURI()函数。
ASP具有Server.URLEncode()函数。
HttpServerUtility.UrlEncode在.NET
答
简单的方法来传递查询字符串值和特殊字符用javascript:
var newURL=encodeURIComponent(uri);
window.location="/abc/abc?q="+newURL;
答
你需要将它们组合起来,形成一个网址前编码查询参数。这里所需要的功能是encodeURIComponent。例如,
你需要创建的网址是:
http://localhost/mysite/mypage?param=a=?&b=/
现在,假设?和/作为变量,你需要先编码它们,然后再放入网址。 因此,让使用此功能(我期待着两个查询参数)创建网址:
var q1 = "a=?"; //came from some input or something
var q2 = "/"; //came from somewhere else
var faultyUrl = "http://localhost/mysite/mypage?param="+ q1 +"&b=" + q2;
// "http://localhost/mysite/mypage?param=a=?&b=/"
var properUrl = "http://localhost/mysite/mypage?param="+ encodeURIComponent(q1) +"&b=" + encodeURIComponent(q2);
//"http://localhost/mysite/mypage?param=a%3D%3F&b=%2F"
此功能是基本的JS和所有的浏览器都支持。
in .Net你想使用'HttpUtility.UrlEncode' https://msdn.microsoft.com/en-us/library/system.web.httputility.urlencode(v=vs.110).aspx – GJKH 2016-03-07 13:27:30