基本 encoding/decoding 网络字符

Basic encoding/decoding of characters for the web

我觉得这是我绝对应该知道的事情,但我不完全确定一个字符在什么时候被浏览器解码的细节(或者即使我正在考虑它正确的方式)。

在检查我添加了一些内容(例如通过表单)的站点的 DOM 时,我可以看到我的 <(在我评论的内容中)显示为字符串。即使 angular 括号是平衡的(例如 <something>),它也显示为字符串而不是 DOM 中的元素。我很欣赏这对于防御诸如 XSS 之类的注入攻击至关重要,因此(在服务器上),内容被写为字符串文字而不是元素 - 但浏览器如何识别并以不同方式呈现它?什么时候解码?

如果服务器确实以 &gt;&lt; 响应,为什么我在开发工具中看不到它?

我的困惑来自于这样一个事实,即在检查时,我的 <something> 内容和 <something> 元素(如果有的话)之间没有区别。

So, I'd expect to see (when inspecting the DOM) &lt;content&gt;, but it seems not.

这仅仅是因为您的浏览器的 DOM 检查器在表示上有点松散。毕竟,您正在检查 DOM,一个复杂的面向对象的内部存储器结构,但您的浏览器却在 [=21= 中向您显示它]-like 演示文稿。由于疏忽或有意识地决定使此演示文稿更具可读性,并非所有在有效 HTML 中应为 HTML 实体的内容都显示为 HTML 实体。

如果您检查页面的实际源代码,您会看到 &lt;content&gt;