Html 如何在查询字符串中包含特殊字符?

Html 如何在查询字符串中包含特殊字符?,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,

URL
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)