为什么不能用''来逃避单引号?

时间:2010-01-18 03:31:57

标签: html escaping quotes

When did single quotes in HTML become so popular?Jquery embedded quote in attribute所述,Wikipedia上的HTML条目说明如下:

  

单引号字符(')在用于引用属性值时,还必须以''进行转义(除非在XHTML中,否则不应转义为'当它出现在属性值本身内时。

为什么不应该使用'?另外,"是否可以安全使用而不是"

5 个答案:

答案 0 :(得分:160)

"位于有效HTML 4 entities的官方列表中,但'不是。

来自C.16. The Named Character Reference '

  

指定的字符参考'   (撇号,U + 0027)是   在XML 1.0中引入但没有   出现在HTML中。作者应该   因此请使用'代替   '在HTML 4中按预期工作   用户代理。

答案 1 :(得分:27)

'不是HTML 4标准的一部分。

但是,

"可以使用。

答案 2 :(得分:24)

"在HTML5和HTML4中均有效。

'HTML5中有效,但不在HTML4。但是,大多数浏览器都支持HTML4 '

答案 3 :(得分:15)

如果您需要编写语义正确的标记,即使在HTML5中,您也必须使用'来转义单引号。虽然,我可以想象你实际上意味着撇号而不是单引号。

single quotesapostrophes在语义上不一样,尽管它们看起来可能相同。

  

这是一个撇号。

如果您需要HTML4支持,请使用’插入。

在英式英语中,单引号的使用方式如下:

  “我告诉我'试一试'”,我说。

行情成对出现。您可以使用:

<p><q>He told me to <q>give it a try</q></q>, I said.<p>

以语义正确的方式使用嵌套引号,将实际字符的替换推迟到呈现引擎。然后,此替换可能会受到CSS rules的影响,例如:

q {
  quotes: '"' '"' '<' '>';
} 

关于语义正确标记的一篇陈旧但似乎仍然相关的文章:The Trouble With EM ’n EN (and Other Shady Characters)

答案 4 :(得分:2)

如果你真的需要单引号,撇号,你可以使用

html    | numeric | hex
&lsquo; | &#145;  | &#x91; // for the left/beginning single-quote and
&rsquo; | &#146;  | &#x92; // for the right/ending single-quote