validation - 我真的需要将 '&' 编码为 '&' 吗?

我正在使用 ' & ' 在我网站的 <title> 中带有 HTML5 和 UTF-8 的符号. Google 在其 SERPs 上显示 & 号罚款,就像标题中的所有浏览器一样。

http://validator.w3.org给我这个:

& did not start a character reference. (& probably should have been escaped as &amp;.)

我真的需要做&amp; ?

我不会为了验证而对我的页面进行验证,但我很想听听人们对此的看法,以及它是否重要以及为什么重要。

最佳答案

是的。正如错误所说,在 HTML 中,属性是 #PCDATA 表示它们已被解析。这意味着您可以在属性中使用字符实体。单独使用 & 是错误的,如果不是针对宽松的浏览器以及这是 HTML 而不是 XHTML 的事实,将会破坏解析。只需将其转义为 & 一切都会好起来的。

HTML5 允许您不转义,但仅当后面的数据看起来不像是有效的字符引用时。但是,最好只转义此符号的所有实例,而不是担心哪些应该是,哪些不需要。

记住这一点;如果您没有将 & 转义为 &,那么对于您创建的数据(代码很可能无效)已经够糟糕了,您也可能没有转义标签分隔符,这对于用户提交的数据来说是一个大问题,这很可能导致 HTML 和脚本注入(inject)、cookie 窃取和其他漏洞。

请转义您的代码。以后可以省去很多麻烦。

关于validation - 我真的需要将 '&' 编码为 '&amp;' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3493405/

相关文章:

javascript - 可以即时进行语法突出显示的文本区域?

javascript - 有人可以解释这个 'double negative' 技巧吗?

html - 放置一个右对齐的按钮

html - 如何设置 dt 和 dd 的样式,使它们在同一行?

html - CSS/HTML : What is the correct way to make

html - 有人可以解释 HTML5 aria-* 属性吗?

javascript - 禁止从 HTML 页面拖动图像

html - 样式化 HTML 电子邮件的最佳实践

javascript - 如何防止点击 '#' 链接跳转到页面顶部?

html - 您应该使用 .htm 还是 .html 文件扩展名?有什么区别,哪个文件是正确的?