HTML 实体编码器 / 解码器

把 HTML 特殊字符转义为命名、十进制或十六进制实体,并将实体解码回文本。可正确处理表情符号,完全在浏览器中运行。

输入内容和文件始终留在浏览器中

输入要转义的 HTML 或文本,或粘贴 < 等实体进行解码。

转义或解码后的文本将显示在这里。

本页内容

将与号、尖括号、引号和非 ASCII 字符转义为 HTML 实体,或把实体还原为纯文本。本工具是在浏览器中运行的纯 JavaScript,粘贴的标记不会被发送到任何地方。

详细功能

三种编码模式覆盖常见场景。默认的特殊字符模式只转义在 HTML 标记和属性中有意义的五个字符:&、<、>、" 和 '。非 ASCII 模式不改动标记,只转换带重音的字母、符号和表情符号,适合必须保持纯 ASCII 的模板或邮件。全部字符模式则两者兼顾。

实体可写成 命名(&amp;、&copy;)、十进制(&#169;)或 十六进制(&#xA9;)引用。本工具中只有约 30 个常用符号有名称,例如 &copy;、&mdash;、&euro; 和 &nbsp;;其他字符即使选择命名格式也会改用十六进制引用。表情符号及基本多文种平面之外的字符会变成单个引用,例如 &#x1F600;。

解码支持同样的命名实体以及十进制、十六进制引用(&#169;、&#xA9;、&#XA9;),并且只做一遍,因此 &amp;lt; 会正确地变成 &lt; 而不是 <。未知名称(如 &hearts;)和缺少结尾分号的引用会保持原样。

实用示例

转义标记:在默认设置下,<a href="x">Tom & Jerry</a> 变为 &lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&lt;/a&gt;。

仅非 ASCII:© 2026 — café <b> 变为 &copy; 2026 &mdash; caf&#xE9; <b>:标签保持不变,而列表中没有名称的 é 改用十六进制。

表情符号:在全部字符模式下,😀 © 在十进制格式中变为 &#128512; &#169;,在十六进制格式中变为 &#x1F600; &#xA9;。

解码:&lt;p&gt; &#169; &#x1F600; &euro; 解码为 <p> © 😀 €,而 &amp;lt; 解码为 &lt;。

如何使用此工具

  1. 粘贴文本

    在 要编码/解码的文本 中输入或粘贴纯文本或 HTML。

  2. 选择模式和格式

    在 编码模式 中选择 仅特殊字符 (& < > " ')、仅非 ASCII 字符 或 所有字符(特殊字符 + 非 ASCII)。在 实体格式 中选择 命名 (&amp;)、十进制 (&#38;) 或 十六进制 (&#x26;)。这些设置只影响编码。

  3. 编码或解码

    点击 编码为 HTML 转义文本,或点击 从 HTML 解码 把实体还原为字符。

  4. 复制结果

    复制 将输出放入剪贴板。交换 会把输出移回输入框,例如用来解码第二层。

提示和最佳实践

  • 对放在 HTML 元素内或带引号属性中的文本,转义这五个特殊字符就足够了;如果页面以 UTF-8 提供,非 ASCII 文本无需转为实体。
  • 转义并不能完全防御 XSS:放在 href、<script> 内或 CSS 中的值需要按上下文处理,例如校验 URL 或进行 JSON 编码。
  • 撇号会编码为 &#x27;(十进制格式下为 &#39;),而不是 HTML 4 未定义的 &apos;。
  • 解码只做一遍:被转义两次的文本(如 &amp;amp;)会先得到 &amp;,点击 交换 后再解码一次即可。
  • 只有内置列表中的命名实体会被解码;数字引用适用于任何 Unicode 字符。