创建一个不会被 URL 解码的 HTML link

Creating an HTML link that will not be URL decoded

我需要创建一个 link 到包含字符 # (%23) 的网页。但是,当 URL 被解码时(导致 URL 包含 #),字符无法识别并且页面无法正常显示。

当我按如下方式创建 link 时,%23 会被 # 替换。这可能是浏览器的行为,但我怎样才能停止它并使用仍然 URL 编码的字符串到达​​正确的 URL ?如果可能的话,我宁愿不使用 JavaScript。

<a href="http://aWebsite.com/somePath/somePage %23myParameter">click</a>

浏览器转到:http://aWebsite.com/somePath/somePage #myParameter
我想去:http://aWebsite.com/somePath/somePage %23myParameter

听起来你需要对它进行第二次编码。 “%”将变为“%25”,因此您将拥有:

<a href="http://aWebsite.com/somePath/somePage %2523myParameter">click</a>

编辑: 如果您希望将“#”作为 URL 的一部分发送到服务器,那么它是行不通的。浏览器将其视为书签,因此将其从请求的 URL 中删除。加载页面后,浏览器将滚动到该书签。

您需要对其进行双重编码:

http://example.com/somePath/somePage %2523myParameter

%25 将在 % 中最终解决 url