用户将单击电子邮件中的链接,并希望看到电子邮件中呈现的井号
在将链接粘贴到电子邮件之前,您需要对 Ben 引用的链接进行编码。您目前拥有的根本不是 URL。
您可以选择将空格编码为+
而不是%20
在查询参数的上下文中,但绝对不能包含原始空格,因为它是 URL 的定义特征,它们没有空格。如果您在 URL 中键入空格Web 浏览器会悄悄地修复错误,但如果 URL 中充满空格,则电子邮件客户端无法从纯文本中挑选出 URL。
有时有一个替代函数将空格编码为+
而不是%20
. 通常最好避免这种情况,因为+
并非在所有情况下都有效,但如果愿意:
index.php?name=Ben&address=101+S+10th+St+Suite+%23301
那么你会使用 PHP 的urlencode
函数而不是更标准的rawurlencode
.
无论哪种方式,您都必须将哈希编码为%23
,否则 HTTP URL 中的哈希表示片段标识符(浏览器滚动到的页面部分)。这不是页面本身地址的一部分;它甚至没有从浏览器传递到服务器,因此您当然无法从$_GET
任何其他界面检索它。
组件中还有许多其他字符,例如在插入 URL 字符串之前必须进行 % 编码的地址,否则它们会给您留下无效或无法使用的 URL。如果所有这些%23
业务在 URL 中看起来很有趣……那么,您将不得不忍受它。这就是 URL 一直以来的样子。