HTML Entity Encoder
One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run · Ctrl+Shift+C Copy · Esc Clear
Understand HTML Entity Encoder
HTML 实体编码把浏览器会当作标记解析的字符替换成转义码,使它们以文本形式显示。
How it works
编码会把可能突破文本节点或属性的五个字符—— & < > " 和 ' ——改写为 &、<、>、" 和 '。& 最先处理,否则对已转义的字符串再次转义会把 < 变成 &lt;。解码方向相反,它能识别一组常见命名实体,以及全部数字形式:十进制(A)和十六进制(A)。
When to use it
- 在页面上展示代码示例,让标签以文本呈现,而不是被解析成标记。
- 在把用户提供的文本插入不会自动转义的模板之前先做转义。
- 阅读抓取或邮件收到的、被双重编码的 HTML——读者看到的是 &lt;。
- 把值放进带引号的属性里,避免一个游离的引号提前结束该属性。
Watch out for
- 转义这五个字符对文本节点和带引号的属性值是正确的,在其他任何位置都不够。在 script 块内、style 块内、不带引号的属性中,或者在 href 里,规则都不一样,仅靠实体编码挡不住注入。
- 只能编码一次。把已经转义过的字符串再跑一遍会得到 &lt;,读者看到的是字面文本 <。
- 解码器覆盖常见命名实体和全部数字实体;HTML5 完整列表中约 2,000 个实体里较冷僻的名称会原样保留。
- ' 属于 XML,不属于 HTML 4。在 HTML 中表示单引号的通用转义是数字形式 ',本工具输出的也是它。
Not the right tool for: 净化那些仍需作为 HTML 继续工作的不可信内容。转义会把标记变成文本;要保留安全标签、去掉危险标签,需要 DOMPurify 这类净化器。
Frequently Asked Questions
为什么要做 HTML 实体编码?
HTML 实体编码把在 HTML 中具有特殊含义的字符(<、>、&、")转换成安全的表示形式。不编码的话,用户提供的内容可能注入 HTML 或 JavaScript,造成 XSS(跨站脚本)漏洞。
命名实体和数字实体有什么区别?
命名实体使用描述性代号,比如 & 写成 &、< 写成 <。数字实体使用十进制(&)或十六进制(&)的 Unicode 码点。两者在浏览器中渲染出同一个字符。
什么时候需要对引号做 HTML 编码?
把值插入 HTML 属性值时,必须编码双引号(" → ")。在以单引号包裹的属性中,单引号(' → ')也要编码。两者对防止 HTML 注入都很关键。
How to Use HTML Entity Encoder
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.