HTML 特殊字符的实体编码与解码
HTML 实体(HTML Entities)是用于在 HTML 文档中表示保留字符和特殊符号的转义序列。因为 <、>、& 等字符在 HTML 中有语法含义,直接使用会导致解析错误,必须用实体形式替代。
| 字符 | 实体名 | 数字实体 |
|---|---|---|
< |
< |
< |
> |
> |
> |
& |
& |
& |
" |
" |
" |
' |
' |
' |
|
|
  |
© |
© |
© |
为什么要转义:防止浏览器将 < > 解析为标签;防止 XSS——将用户输入插入 HTML 前必须转义。
React/Vue 的文本节点会自动转义;使用
innerHTML/dangerouslySetInnerHTML时需手动处理。
<script> 等标签被执行 、版权符号 ©)命名实体(如 &)可读性好但并非所有字符都有命名形式;数字实体(如 &)可表示任意 Unicode 字符,兼容性更强。两者在浏览器中渲染效果完全相同。
使用 JSX 文本节点或模板插值时框架会自动转义,无需手动处理。但通过 dangerouslySetInnerHTML 或 v-html 插入 HTML 字符串时,必须自行确保内容已转义或经过消毒(sanitize)。
和普通空格有什么区别?普通空格会被 HTML 合并(多个连续空格只显示一个),且可以作为换行点。 (不换行空格)不会被合并,也不会在此处换行,适合需要精确控制间距的场景。