【问题标题】:Proper Way to Escape the | Character Using HTML Entities逃脱的正确方法|使用 HTML 实体的字符
【发布时间】:2020-04-07 08:03:37
【问题描述】:

为了在 HTML 中转义 & 字符,我使用了& HTML 实体,例如:

<a href="https://www.example.com/?q1=val1&amp;q2=val2">Link</a>

如果我的 HTML 中有以下代码,我将如何转义 | 字符?

<a href="https://www.example.com/?q1=val1|q2=val2">Link</a>

HTML Tidy 抱怨说在我的 HTML 中发现了非法字符。

我尝试使用 &amp;brvbar; 和其他几个 HTML 实体,但 Tidy 说“URI 引用格式错误。”

【问题讨论】:

    标签: html html-entities htmltidy


    【解决方案1】:

    你不会的。

    问题(如消息所述)是该字符在 URL 中是非法的。它在 HTML 中非常好。

    您需要申请encoding for URLs,即%7C

    【讨论】:

    • 谢谢昆汀。什么时候应该使用 HTML 实体或百分比编码进行转义?
    • 对 URL 中的特殊字符使用 URL 编码。对 HTML 中具有特殊含义的字符使用 HTML 编码 ('"&amp;&lt;&gt;)
    【解决方案2】:

    我不知道为什么 tidy 会抱怨它,但是这个字符在 HTML 和 URL 中都没有问题。 | 不是保留字符,可以按原样在 URL 中使用。您可以对每个字符进行百分比编码,但实际上没有必要。

    我认为 Tidy 可能会抱怨的是 =。你有两个,第二个是无效的。

    无需在 HTML 实体中对该字符进行编码。它在 HTML 中没有特殊含义。

    【讨论】:

    • 我验证它是竖线 | HTML Tidy 抱怨的字符,因为如果我删除它,警告就会消失。
    • 你能告诉我们如何重现这个问题吗?
    • 我正在使用带有 HTML Tidy 插件的 Sublime Text 编辑器进行 linting。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多