以下網址工作正常:如何包含在查詢字符串中的特殊字符
但是,如果我想要把一些特殊字符`PARAM一樣,/,\,那麼URL變爲:
或
http://localhost/mysite/mypage?param=http://www.mysite.com/page2?a= \ & B = ...
這是行不通的。我該如何解決這個問題?
以下網址工作正常:如何包含在查詢字符串中的特殊字符
但是,如果我想要把一些特殊字符`PARAM一樣,/,\,那麼URL變爲:
或
http://localhost/mysite/mypage?param=http://www.mysite.com/page2?a= \ & B = ...
這是行不通的。我該如何解決這個問題?
您必須在URL中編碼特殊字符。請參閱:http://www.w3schools.com/tags/ref_urlencode.asp
您需要使用編碼特殊字符,請參閱this頁面以供參考。
如果您使用PHP,有一個功能可以執行此操作,稱爲urlencode()。
您需要用URL實體替換字符。 Some information here.
在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