【问题标题】:How to encode quotes in HTML body?如何在 HTML 正文中编码引号?
【发布时间】:2009-11-02 22:43:33
【问题描述】:

我是否应该在我的 HTML 正文中编码引号(例如 " 和 ' -> ”’)(例如,将 <p>Matt's Stuff</p> 转换为 <p>Matt’s Stuff</p>)?我的印象是我应该这样做,但是 co -worker 说这没什么大不了的。我很怀疑,但我找不到任何说它被禁止的东西。我弄错了吗?这是编码的最佳实践吗?还是根本没用?

【问题讨论】:

  • 您能否引用您的报价,以便更清楚您的要求?我认为您想区分 " 和 &rsquo 但它没有通过
  • 彼得,编辑了一下。也感谢格雷格

标签: html xhtml encoding character-encoding


【解决方案1】:

编码引号 (") 实际上只需要在属性内时才需要,但是为了使 HTML 代码正确(通过 HTML 验证),您应该始终将引号编码为 "

撇号 (') 在 HTML 中不需要转义。在 XHTML 中,它们应该被编码为'

【讨论】:

  • ' 是可以的——但前提是您不打算将文档作为 text/html 提供(大多数人希望 Internet Explorer 这样做渲染页面)。 w3.org/TR/xhtml-media-types/#C_16
  • @Quentin - 我只是注意到您的链接说使用 '用撇号 (') 代替‘’谢谢!
  • @danfromisrael — 是的,请重新阅读我的评论“只要您不打算将文档作为文本/html 提供”。
  • "仅在表明某人身高 5'11" 或类似情况时才有价值。您应该使用 “ 和 ” 来表示双引号,因为它们在印刷上更正确。这是一个很好的文章:code.stephenmorley.org/html-and-css/…
  • @Guffa:正确的引号是最佳的;对于它们,选择最佳字体也很重要。我宁愿为绝大多数用户提供最佳体验,而不是为所有用户提供次优体验。
【解决方案2】:

如果您希望您的标记可解析为 XML,您需要对以下内容进行编码:

& => &
< => &lt;
> => &gt;
" => &quot;
' => &apos;

无论您是否尝试使您的代码符合 XML 标准,都必须在属性中执行此操作。

【讨论】:

    【解决方案3】:

    除非您将此类值放入标签的属性中(或其他带有引号会导致解析失败的地方),否则通常没有必要这样做。在常规正文中,未编码的文本可以正常工作。

    <img src="..." alt="A &quot;quote mark&quot; in an alt attribute" />
    

    【讨论】:

      【解决方案4】:

      不,如果您想在使用相同引号的属性值声明中使用引号(单引号或双引号),则只需对引号使用字符引用:

      title="The sign says &quot;Matt's Stuff&quot;"
      title='The sign says "Matt&#39;s Stuff"'
      

      两个标题值都是The sign says "Matt's Stuff"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多