UFOZoo

HTML实体编码 — 特殊字符转义与反转义在线工具

HTML 实体编码解码器,支持命名实体、十进制和十六进制三种引用格式。可选全量非 ASCII 编码模式,防止 XSS 攻击和标记破坏。

功能特性

  • 实时编码或解码 HTML 实体
  • 支持命名实体(&)、十进制(&)和十六进制(&)引用
  • 编码全部非 ASCII 字符选项,适合国际化内容兼容性
  • 输入即更新,无需点击
  • 拖拽选择、一键复制、保存为 .txt 文件
  • 完全在浏览器中运行——不上传任何数据
  • 一次性编码全部五个 XML 敏感字符(<、>、&、"、')
  • 将实体编码字符串自动解码回原始字符
  • 字符级和字节级长度计数器,方便控制内容大小
  • 编码时保留已存在的实体,避免双重编码问题

使用方法

  1. 1在输入区域粘贴文本,一键切换编码和解码。
  2. 2启用「编码全部非 ASCII」可将非 ASCII 字符(é、中文、🚀)转为数字实体。
  3. 3结果实时更新。使用复制或保存按钮保存。
  4. 4嵌入代码片段到博客文章前先编码——粘贴代码,复制编码版本以防止 HTML 渲染问题。
  5. 5解码 RSS 内容或使用数字实体的 HTML 邮件模板——粘贴编码文本并切换到解码模式查看原始内容。
  6. 6与其他开发者共享编码内容时使用命名实体输出,可读性更好。
  7. 7使用十进制或十六进制数字实体以获得任何 Unicode 字符的通用支持,尤其在命名实体不存在时。
  8. 8在国际化内容发布到不支持 UTF-8 的旧版 CMS 系统前,启用「编码全部非 ASCII」选项。
  9. 9通过打开文件批量处理多个代码片段,一次编码全部内容并保存结果。
  10. 10将编码输出粘贴到浏览器的开发者工具控制台中验证渲染是否正确。

常见问题

什么是 HTML 实体编码?

HTML 实体编码将 HTML 中有特殊含义的字符(<、>、&、"、')转换为安全的实体表示(如 &lt;、&gt;、&amp;),防止浏览器将其解释为标记。这在显示代码片段和防止 XSS 攻击时至关重要。

命名实体、十进制和十六进制有什么区别?

命名实体使用描述性名称,如 &amp; 或 &lt;。十进制数字实体使用 &#38;(十进制码点)。十六进制数字实体使用 &#x26;(十六进制码点)。命名实体更易读,但数字实体适用于任何 Unicode 字符。在 HTML5 中它们都是有效的。

「编码全部非 ASCII」选项有什么用?

启用后,所有非 ASCII 字符(包括 emoji、中文、重音字母等)都会转换为数字实体如 &#233;。这对不支持 UTF-8 的旧系统很有用,或需要确保跨不同字符编码的最大兼容性时使用。

我的数据会被上传到服务器吗?

不会。所有处理完全在浏览器中完成,数据不会离开您的设备,不会通过网络传输,也不会存储在任何地方。

什么时候应该使用 HTML 实体编码?

在网页中显示用户生成内容时(XSS 防护)、在博客文章或文档中嵌入代码片段时、或将特殊字符插入 HTML 属性时使用实体编码。现代框架(如 React)默认自动转义,但在使用 raw innerHTML、CMS 导出和邮件模板时需要手动编码。

HTML 实体编码能防止 XSS 攻击吗?

是的,将用户输入编码为 HTML 实体是防止 XSS(跨站脚本)攻击的主要防御手段。通过将 < 转换为 &lt;,> 转换为 &gt;,浏览器不会解释注入的 HTML 标签或脚本。在 HTML 页面中渲染用户生成内容之前,始终进行编码。

编码 HTML 实体时会转换哪些字符?

五个基本字符是:&(ampersand → &amp;)、<(小于号 → &lt;)、>(大于号 → &gt;)、"(双引号 → &quot;)和 '(单引号 → &#39;)。「编码全部非 ASCII」选项额外将 ASCII 范围外的任何字符转换为数字实体。

可以编码混合内容(HTML + 纯文本)吗?

可以。工具将输入视为纯文本进行编码——它对字符进行转义而不尝试解析 HTML。这意味着编码时已存在的实体(如 &amp;)会被双重编码(&amp;amp;)。解码模式下,已存在的实体被正确解码回字符。

如何避免双重编码?

双重编码发生在对已包含实体的文本进行编码时(例如再次编码 &amp; 会产生 &amp;amp;)。为避免这种情况,先用解码模式将实体恢复为原始字符,再编码。工具在编码时会保留已存在的实体。

&amp; 和 &#38; 有什么区别?

都表示 & 符号。&amp; 是命名实体——可读性更好、更直观。&#38; 是十进制数字实体,使用字符的 Unicode 码点(38 = 0x26)。&#x26; 是十六进制等价形式。在 HTML5 中都有效,浏览器渲染效果完全相同。

什么时候使用「编码全部非 ASCII」选项?

在目标邮件客户端使用 ISO-8859-1 等旧版字符编码时,或发布内容到已知会错误处理 UTF-8 的 CMS 平台时使用。它将 emoji、中文、重音字母等 Unicode 字符转换为数字实体,确保在任何地方都能正确渲染。

相关工具