是否可以创建指向路径中包含双引号的页面的超链接


Is it possible to create a hyperlink to a page that has Double quotes within the path?

我想创建指向网站上页面的超链接,但页面地址中有双引号?

例如:

<a href="mysite.com/search.php?q="sales+manager"&l=usa"></a>

上面只是链接到mysite.com/search.php?q=正如我所期望的那样。

API返回的结果允许通过将结果放在双引号中进行短语搜索。

有没有办法在href标记中转义这些?

简单的解决方案:使用替代引号:

<a href='mysite.com/search.php?q="sales+manager"&l=usa'></a>

这会很好用(浏览器会确保用户点击URL时URL的格式正确),但你真的应该对特殊字符进行URL编码,因为URL中有很多东西是不允许使用的,有些东西有不同的含义(例如,在URL中,空格变成了+,所以你不能在解析后插入+并使其保持不变。URL魔术!)。

看看urlencode,并在生成链接URL服务器端时使用它。这将把空格变成%20,把双引号变成%22等等,这就是将文本字符串数据从客户端发送到服务器的方式。

Yo必须对引号进行编码&报价

mysite.com/search.php?q=&quot;sales+manager&quot;&l=usa

有没有办法在href标记中转义这些?

是的,有逃生角色。'

尽管如此,您的代码的当前状态将产生:

<a href="example.com/search.php?q="sales+manager"&l=usa"></a>

有效地中断href,因为您正在中断字符串。

你想要的只是:

<a href="mysite.com/search.php?q=sales+manager&l=usa">...</a>

您正在考虑是否需要转义字符才能在HTML中工作。但是,您还应该考虑是否需要对它们进行转义才能成为健全的URL。

要在HTML中工作,您可以执行
<a href="mysite.com/search.php?q='sales+manager'&l=usa">
但是,'字符不能在URL中。

"统一资源定位器只能包含标准ASCII字符集中的可显示字符。不可显示的字符或扩展ASCII集(128到255)中的字符是经过特殊编码的。"有关URL转义码的列表,请参见此处。

也许您希望在URL的get请求中保留引号。在这种情况下,您可能需要:

<a href="mysite.com/search.php?q=%22sales+经理%22&l=usa">