HTML 实体编码与解码

把 &、<、> 等特殊字符转换为 HTML 实体(&amp;、&lt;、&gt;),或反向解码。

功能特性

命名实体
数字实体
速查对照表

使用方法

1. 选择「编码」或「解码」。

2. 把文本粘贴到输入框。

3. 结果显示在右侧 —— 点击「复制」即可。

关于这个工具

在 HTML 中,<、> 和 & 等字符有特殊含义,要把它们作为文本显示,就得写成 &lt;、&gt;、&amp; 这样的实体。把用户提供的文本这样编码后再插入页面,也是防御跨站脚本攻击的基本手段之一。本工具会把五个保留字符——& < > " '——以及所有非 ASCII 字符转换为实体:“命名形式”在有对应名称时使用 &eacute;、&copy; 这样易读的形式,“数字形式”则统一写成 &#233; 这样的编号。解码会把任何命名或数字实体还原成真实字符。它适合为博客文章准备代码示例、修复 CMS 中被重复编码的文本,或阅读 API 响应里的转义字符串。

常见问题

HTML 中哪些字符必须编码?
在文本内容中,& 和 < 必须编码,> 通常也一并编码以保持一致。在属性值里,用来包裹属性值的引号(" 或 ')也必须编码。页面使用 UTF-8 时,其他字符可以直接书写。
命名实体和数字实体有什么区别?
命名实体使用 &copy;、&euro; 这样易读的名称,但只存在于规定的字符列表中;数字实体如 &#169; 或 &#x20AC; 可以表示任何 Unicode 字符。浏览器对两者的处理完全一样。
为什么文本里出现了 &amp;amp;?
文本被编码了两次,&amp; 又被编码成了 &amp;amp;。解码一到两次直到实体消失,并确保应用程序只在最终输出时转义一次。
HTML 编码足以防止 XSS 吗?
它能保护放在 HTML 元素内容和带引号属性中的文本。插入到 JavaScript、CSS、URL 或不带引号属性中的内容需要按上下文转义,所以请使用框架提供的模板函数,而不是手动编码。
解码时会执行 HTML 或脚本吗?
不会。解码用一种不会执行代码的方式把实体文本转成字符,并以纯文本显示结果,所以输入中的标签不会被渲染,脚本也不会运行。

相关工具