我想创建指向我网站上网页的超链接,但页面地址中有双引号?
例如:
<a href="mysite.com/search.php?q="sales+manager"&l=usa"></a>
上面只是链接到 mysite.com/search.php?q = ,正如我所期待的那样。
API返回结果允许通过将它们放在双引号中进行短语搜索。
有没有办法在href标签内转义这些?
答案 0 :(得分:1)
哟必须编码引号&amp; quot
mysite.com/search.php?q="sales+manager"&l=usa
答案 1 :(得分:1)
简单解决方案:使用altenative quotes:
<a href='mysite.com/search.php?q="sales+manager"&l=usa'></a>
这样可以正常工作(浏览器会确保用户点击它时网址格式正确),但你应该真正对urlencoding特殊字符进行编码,因为有很多东西你不是允许在URL中使用,以及一些具有不同含义的东西(例如,在URL中,空格变为+,因此您无法在+中删除并在解析它时保留它。)URL magic !)。
查看urlencode并在生成链接URL服务器端时使用它。这会将空格转换为%20
,将双引号转换为%22
等,并将文字字符串数据从客户端发送到服务器。
答案 2 :(得分:0)
有没有办法在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>
答案 3 :(得分:0)
您正在考虑是否需要转义字符才能在HTML中使用。 但是,您还应该考虑是否需要转义它们才能成为合理的URL。
使用您的HTML工作
<a href="mysite.com/search.php?q='sales+manager'&l=usa">
。
但是,'
字符不能在URL中。
&#34;统一资源定位器只能包含标准ASCII字符集中的可显示字符。扩展ASCII集(128到255)中的不可显示的字符或字符是经过特殊编码的。&#34; 有关URL转义码的列表,请参阅here。
也许您希望在URL的get-request中保留引号。在这种情况下,您可能需要:
<a href="mysite.com/search.php?q=%22sales+manager%22&l=usa">