logo
HTML

什么是 HTML 实体编码?为什么需要使用它?举例说明。

Updated Apr 14, 2026

面试回答

考察点:特殊字符渲染、XSS 防御基础


HTML 中有些字符具有特殊含义,比如 <> 用于定义标签,& 用于开始实体引用。如果我们要在页面上直接显示这些字符,就需要使用实体编码

例如:

  • < 写成 &lt; (Less Than)
  • > 写成 &gt; (Greater Than)
  • & 写成 &amp; (Ampersand)
  • 空格写成 &nbsp; (Non-Breaking Space),它可以防止文本在空格处换行。

为什么需要? 如果不转义,浏览器会把 < 解析为标签的开始,导致页面结构错乱。

安全角度: 在处理用户输入时,如果直接将用户输入的 <script> 插入 DOM,会导致 XSS 攻击。虽然现代框架(如 React, Vue)默认会对插值内容进行转义,但在原生 JS 操作 innerHTML 时,开发者必须手动进行实体编码或使用 textContent 来确保安全性。理解实体编码是理解 Web 安全的基础之一。