什么是在HTML5中找到空字节的正确处理?

问题描述:

关于HTML/DOM解析器的正确行为,HTML5规范应该如何处理该HTML文件中是否遇到NULL字节的字符?什么是在HTML5中找到空字节的正确处理?

+0

你是什么意思的空字节? '%00'? – BenM

如果您的意思是U + 0000 NULL字符,那么在大多数情况下,该规范要求符合HTML解析器以U + FFFD替换字符替换该字符。在某些情况下,规范要求它被忽略。

但是对于实现错误报告的HTML解析器,规范要求解析器报告unexpected-null-character错误。 (这是规范引用术语parse error时引用的错误之一,但尽管您可能从该名称中假设了什么,但这不是致使解析停止的致命错误 - 而是在非错误报告解析器中,而不是“错误“本质上只是一个没有操作)

无论如何,如果你想知道什么规范要求在特定情况下处理NULL,你可以在你的浏览器做一个页面查找搜索U + 0000 NULL在规范的以下部分:

https://html.spec.whatwg.org/multipage/parsing.html#parsing

当你这样做,你会遇到一对夫妇的音符ŧ帽子是相关的:

U + 0000空字符的处理根据字符被发现的位置以及在解析的后期阶段发生而变化。
...
通常,这些代码点要么完全被忽略,要么出于安全原因,用U + FFFD替换字符代替。