简体中文

开发者工具 · HTML 实体转义器

为什么不带分号的 &copy 仍然可以解码:HTML 的遗留命名引用

· 工作原理

html 浏览器 API 编码

为什么不带分号的 &copy 仍然可以解码:HTML 的遗留命名引用显示为浏览器安全的字符引用图
原始 ToolAcre 矢量图

HTML 解析器会解码一小部分较旧的命名引用,即使缺少分号,因此文本中的原始 &not 或 &copy 可能会变成 Ø 或 ©。这篇文章解释了遗留列表、最长匹配规则、属性异常,以及为什么转义每个 & 符号可以避免所有这些。

页面中出现的 Øify — 文本内容中的原始“&notify”,通过旧规则解码为 Ø 加“ify”

页面中出现的 Øify — 文本内容中的原始“&notify”,通过旧规则解码为 Ø 加“ify”。浏览器可能会解释散文中无分号的旧名称,这解释了令人惊讶的转换,例如&notify的前缀。 ToolAcre 不会模仿该恢复行为。

要验证不带分号的 html 实体,请构造为开发人员显示的 ify,该开发人员的页面在文本表示 &notify 的位置显示 Øify。在页面中保存一段时间分号恢复边界产生文本中的原始通知;识别解码为 plus 的内容在何处被消耗。遗产对 ify 的观察仅属于 HTML 文本。

旧列表 — 浏览器必须接受的旧 HTML 4 名称,不带分号以实现兼容性

旧列表 — 旧的 HTML 4 名称,浏览器必须接受不带分号的兼容性。旧版接受属于浏览器标记器,并且因状态而异。相反,存储库解码器仅识别其 235 条目表中后跟分号的显式名称。

页面显示 Øify 且文本显示 &notify 的开发人员可以通过在分号恢复边界传递之前记录较旧的 html 4 名称来测试遗留列表。比较一下,浏览器必须随后接受并找到负责不带分号的解析器。这个没有分号结果的 html 实体解释了兼容性,而不是可执行上下文。

分词器如何匹配 — 消耗表中最长的名称,因此 &not 在 &notify 中获胜

分词器如何匹配 — 消耗表中最长的名称,因此 &not 在 &notify 中获胜。浏览器最长匹配行为可以在读者期望之前消耗已知的前缀。该工具中的有界正则表达式避免了前缀猜测,因为它的匹配必须以分号结束。

隔离分词器在短分号恢复边界样本中的匹配方式。将最长的名称显示为文字源,按照表中的顺序到达其目的地,并将 API 命名为在通知中读取不获胜。对于没有分号的 html 实体,分号恢复边界证据仍然是解析器绑定的证据。

属性异常 - 为什么 href 内的 &copy=2 可以生存,但 &copy 后跟 & 或值的末尾却不能

属性异常 - 为什么 href 内的 &copy=2 能够生存,但 &copy 后跟 & 或值末尾却不能。属性解析添加了涉及等号和字母数字跟随者的异常。这些浏览器规则正是紧凑实用程序不应声明解析器等效恢复的原因。

将属性异常why视为边界实验。一位开发人员的页面显示 Øify,其中文本表示 &notify 应保留 an 内的副本 2,执行一个分号恢复边界操作,并检查 href 是否存在,但在更改之前逐个字符复制,然后是 或 。关于值结束的声明在此 HTML 层停止。

为什么新实体总是需要分号——在 HTML5 中标准化解析时绘制的兼容性线

为什么新实体总是需要分号——在 HTML5 中标准化解析时绘制的兼容性线。在 ToolAcre 中,&copy 保持 &copy,© 变为 ©,而 &copyx 保持不变,因为不存在匹配的表键。这有意与宽容的浏览器解析不同。

重现为什么新实体总是使用无害的输入而不是客户材料。记录要求分号的情况,观察何时绘制兼容线,并计算每个有意的分号恢复边界通过的次数。没有分号跟踪的 html 实体可以让开发人员在其页面显示 Øify 文本表示的位置 &notify 评估解析在 html5 中标准化,而无需猜测。

工作示例:文本和 href 中的 &copy、©、&copyx 和 &copy=2 — 浏览器为每个内容呈现的内容

工作示例:文本和 href 中的 &copy、©、&copyx 和 &copy=2 — 浏览器为每个内容呈现的内容。新的和晦涩的名称应始终带有分号。该实用程序使该规则可观察到:省略会产生未更改的文本,而不是猜测的字符或部分匹配。

将工作示例副本 copy、copyx 和副本 2 放置在文本中,并在分号恢复边界审查期间并排放置。如果开发人员的页面显示了“&notify”文本,那么开发人员就可以决定 href 是否在转换时或下游发生了更改。对于每个超出通用安全声明的浏览器呈现,保持 html 实体不带分号结论。

这不包括什么——完整的字符参考状态机和错误恢复细节

这不包括什么——完整的字符参考状态机和错误恢复细节。本文不会重现完整的字符引用状态机。它将浏览器遗留恢复与工具的严格合同区分开来,因此读者不会推断出不受支持的行为。

在运行分号恢复边界之前定义它不做什么。保存覆盖完整字符作为控件,检查参考状态机后面的代码点,并将错误恢复详细信息映射到下一个解释器。这使得分号恢复边界证据对于开发人员来说是可审计的,该开发人员的页面显示 Øify ,其中文本表示 &notify 调查不带分号的 html 实体。

要点:浏览器接受一些遗留遗漏; ToolAcre 故意需要分号

要点:浏览器接受一些遗留遗漏; ToolAcre 故意需要分号。在将文本插入 HTML 之前,转义每个文字与符号。编码器确定性地生成,而其解码器需要终止引用并且从不承诺遗留解析。

连接外卖浏览器接受一些可观察的分号恢复边界输出。故意将遗留遗漏工具保留在一次性结果旁边,然后验证需要分号进入分号恢复边界证据的位置。页面显示 ¬ify 且文字为 &notify 的开发人员现在可以将分号恢复边界证据作为窄 html 实体进行审查,而无需查找分号。本文背后的实际决策是具体的:即使分号丢失,HTML 解析器也会对一小部分较旧的命名引用进行解码,因此文本中的原始 &not 或 &copy 可以变成 Ø 或 ©。这篇文章解释了遗留列表、最长匹配规则、属性异常,以及为什么转义每个 & 符号可以避免所有这些。阅读器操作同样具体:链接到 HTML 实体转义器,并演示使用查询参数转义 URL,使其与符号在进入 href 之前变为 &。