Html 如何在查询字符串中包含特殊字符?
URLHtml 如何在查询字符串中包含特殊字符?,html,url-rewriting,Html,Url Rewriting,URLhttp://localhost/mysite/mypage?param=123工作正常。但是,如果我想在param中放入一些特殊字符,如?,/,\,则URL变为http://localhost/mysite/mypage?param=a=?&b=/或http://localhost/mysite/mypage?param=http://www.example.com/page2?a=\&b=…这不起作用。如何解决此问题?您需要使用特殊字符编码,请参阅第页以获取参考 如果您使用的是PHP,
http://localhost/mysite/mypage?param=123
工作正常。但是,如果我想在param
中放入一些特殊字符,如?
,/
,\
,则URL变为http://localhost/mysite/mypage?param=a=?&b=/
或http://localhost/mysite/mypage?param=http://www.example.com/page2?a=\&b=…
这不起作用。如何解决此问题?您需要使用特殊字符编码,请参阅第页以获取参考
如果您使用的是PHP,那么有一个函数可以实现这一点,名为。您必须在URL中编码特殊字符。请参阅:您需要用URL实体替换字符。
在JavaScript中,您可以使用
encodeURI()
函数
ASP具有Server.URLEncode()
函数
您可以在.NET中使用
HttpServerUtility.UrlEncode
。使用javascript传递带有特殊字符的查询字符串值的简单方法:
var newURL=encodeURIComponent(uri);
window.location="/abc/abc?q="+newURL;
在组合查询参数以形成url之前,需要对其进行编码。这里需要的功能是。例如 您需要创建的url是:
http://localhost/mysite/mypage?param=a=?&b=/
现在,假设是这样?和/作为变量出现,您需要在输入url之前对它们进行编码。
因此,让我们使用此函数创建您的url(我希望有两个查询参数):
这个函数在基本JS中,在所有浏览器中都受支持。我在下面做了,它工作得很好
const myQueryParamValue = "You&Me";
const ajaxUrl = "www.example.com/api?searchText="+encodeURIComponent(myQueryParamValue)
在.Net中,如果您想使用
HttpUtility.UrlEncode
如果您有像“/?:@&=+$#”这样的特殊字符,那么您需要使用这个扩展函数:更有效的引用应该是MDN,请参见下文。。。
const myQueryParamValue = "You&Me";
const ajaxUrl = "www.example.com/api?searchText="+encodeURIComponent(myQueryParamValue)