0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
配置
编码和解码 HTML 实体。基本 仅编码 5 个破坏 HTML 的字符: & < > " '扩展 还会编码所有非 ASCII 字符。您可以选择使用带名称的实体 (&amp;), 十进制 (&#38;) 或 十六进制 (&#x26;)。
操作
范围
格式
0

工作原理

HTML 实体表示在标记中具有特殊含义的字符(< > & " ')或非 ASCII 字符,使用诸如 &lt;、&amp; 或 &#169; 之类的序列。这样浏览器就会将它们显示为文本,而不是当作代码解释。

有三种等价格式:命名(&copy;)、十进制(&#169;)和十六进制(&#xA9;)。三者产生相同的字符;命名格式更易读,但只对已知的字符集存在。

“基本”范围只转义会破坏 HTML 的字符(& < > " ');“全部”范围还会转义任何非 ASCII 字符。

示例

<a href="#">&lt;a href=&quot;#&quot;&gt;转义可防止浏览器解释这些标签,并将其显示为文本。
5 < 10 & 3 > 15 &lt; 10 &amp; 3 &gt; 1
© 2024 · €&copy; 2024 · &euro;使用“全部”范围和命名格式。十进制为 &#169; 和 &#8364;;十六进制为 &#xA9; 和 &#x20AC;。

使用场景

  • 在页面上将 HTML 代码显示为文本(示例、文档),而不被渲染。
  • 在将用户输入插入 HTML 之前对其转义以防止 XSS。
  • 以在各种编码间可移植的方式插入特殊符号(©、€、→、½)。
  • 解码从页面源代码复制的、包含实体的文本。

常见问题

哪种格式最好:命名、十进制还是十六进制?

命名格式(&copy;)最易读,但只涵盖有定义名称的字符。十进制(&#169;)和十六进制(&#xA9;)适用于任何 Unicode 字符,因此对于不常见的符号是安全选择。

编码实体能防止 XSS 攻击吗?

这是重要的一环,但转义必须根据上下文(HTML 内容、属性、JavaScript 或 URL)进行。不要只依赖单一层:也要使用框架的防护。

哪些字符必须始终转义?

内容中的 & < >,以及属性值内的 " 和 '。“基本”范围恰好涵盖这一组。

我的文本会发送到服务器吗?

不会。编码和解码完全在你的浏览器中进行。