【发布时间】:2017-08-25 21:09:36
【问题描述】:
HTML5 规范对 HTML/DOM 解析器的正确行为有何规定,它是否应该在该 HTML 文件中遇到 NULL 字节字符?
【问题讨论】:
-
NULL 字节是什么意思?
%00?
标签: html dom html-parsing
HTML5 规范对 HTML/DOM 解析器的正确行为有何规定,它是否应该在该 HTML 文件中遇到 NULL 字节字符?
【问题讨论】:
%00?
标签: html dom html-parsing
如果您指的是 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 NULL 字符的处理根据字符所在的位置以及在解析的后期阶段发生的情况而有所不同。
…
通常,此类代码点要么被完全忽略,要么出于安全原因,被替换为 U+FFFD 替换字符。
【讨论】: