应该对 href 属性的内容做什么:HTML 或 URL 编码?
<a href="???">link text</a>
一方面,由于 href 属性包含 URL,我应该使用 URL 编码。另一方面,我将这个 URL 插入到 HTML 中,所以它必须是 HTML 编码的。
请帮助我克服这个矛盾。
谢谢。
编辑:
这就是矛盾。假设 URL 中可能有 '<' 和 '>' 字符。URL 编码不会对它们进行转义,因此在 href 属性中会有保留的 HTML 字符,这违反了标准。HTML 编码会转义 '<' 和 '>' 字符,HTML 将有效,但之后 URL 中会出现意外的 '&' 字符(这是 URL 的保留字符,用作查询字符串参数的分隔符) .
保留的 URL 字符形成了保留的 HTML 字符的超集,除了为 HTML 保留但不为 URL 保留的“<”和“>”。
编辑2:
我对 '<' 和 '>' 字符是错误的,它们实际上是通过 URL 编码转义的。如果是这样,在这种情况下 URL 编码就足够了,不是吗?