HTML 实体转义

把反尖括号、与号这类特殊字符转成 HTML 实体,或把实体还原成原字符。

为什么需要转义

在 HTML 里,尖括号和与号有特殊含义。要在页面上原样显示 <div> 或 &,就得写成实体。最常用的五个是 &amp;、&lt;、&gt;、&quot; 和单引号。

单引号这里用 &#39; 这种数字写法,因为它同时适用于 HTML 和 XML,兼容性比 &apos; 好。数字实体有两种写法:&#123; 是十进制,&#x1F600; 是十六进制,写 emoji 常用后者。

还原时按从左到右一遍扫描,所以 &amp;lt; 会还原成 &lt;,而不是尖括号,这样转义过的文本可以安全地多层嵌套。无法识别的实体会原样保留。

在把用户输入拼进页面时,转义是防 XSS 的基本手段之一,但仍需配合其他措施。本页在浏览器本地处理,内容不会上传。