HTML5中的&和&有什么区别?

3

&&之间的区别是什么?

像下面的代码一样,它们是否以相同的方式工作?

<a href="mailto:EMAIL?subject=BLABLABLA&body=http://URL, SHORT DESCRIPTION"></a>
<a href="mailto:EMAIL?subject=BLABLABLA&amp;body=http://URL, SHORT DESCRIPTION"></a>
3个回答

10
在HTML5中,它们在这个例子中是等价的。传统上,在HTML中,只有&amp;是正确的 - 但像许多事情一样,Web开发人员无视了这个不方便的规则,并在各处写裸的&符号。对于他们来说,浏览器只是“做正确的事情”,将这些&符号解释为&符号。 HTML5标准化了这种行为,因此现在只要后面的内容不像实体引用,&本身就被允许使用。

1
你能指出规范中对这种行为的标准化吗?我正在查找... - undefined
2
@ExplosionPills:它实际上是以一种相反的方式来处理的。传统的 HTML 仅将 & 指定为实体标记,而 HTML5 则明确禁止了“模糊的和号”(ambiguous ampersands)。这在规范的“HTML 语法”部分有详细说明。 - undefined
2
@ExplosionPills - 这里是行为(与允许或禁止的相对):http://www.w3.org/html/wg/drafts/html/master/syntax.html#consume-a-character-reference - undefined
1
"模棱两可的与号"在这里定义:https://w3c.github.io/html/syntax.html#ambiguous-ampersand - undefined

5
&amp;是HTML中特殊字符&的转义字符,因为&在HTML中有特殊含义,用作特殊字符的信号。虽然大多数浏览器会对无效HTML进行处理,使得href="&"可以使用,但从技术上讲这是不正确的。你应该使用&amp;,因为这个实体将在HTML代码中被转换成&
如果你使用"而不是&,那么这将结束href的值并使HTML不正确。你应该使用&quot;
参见:http://www.w3.org/html/wg/drafts/html/master/single-page.html#syntax-errors“涉及脆弱语法结构的错误” -- 实际上指出,如果&后面没有命名字符引用,那么使用它是可以的,但是有很多这样的情况;理想情况下,你应该自动转义属性输入。

0

&amp; 是 HTML 实体(编码形式)表示的 &,用于描述在某些语言中 & 符号有特殊含义的情况,比如 XML。

HTML 渲染工具,比如浏览器,在源代码中看到 &amp; 会渲染为 &


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接