博客
简体中文

HTML实体编码解码 — 在线转义HTML字符

HTML实体编码与解码,支持特殊字符和非 ASCII 字符

在浏览器中处理 · 不上传任何内容

功能简介

在 HTML 中,< 和 & 等字符有特殊含义,要按字面显示它们,就需要写成 &lt;、&amp; 这样的实体。本工具可以把文本转换成实体,也可以把实体还原成字符。

使用方法

  1. 选择编码或解码。
  2. 编码时选择范围:只转义必需的 5 个字符,或把所有非 ASCII 字符转为数字引用。
  3. 粘贴文本,结果会立即出现。
  4. 复制结果,或点击“将输出用作输入”检查能否来回转换。

处理方式

  • 仅必需的 5 个:& 转为 &amp;,< 转为 &lt;,> 转为 &gt;," 转为 &quot;,' 转为 &#39;。
  • 所有非 ASCII 字符:在上面 5 个的基础上,码位为 128 及以上的每个字符都转为十进制引用(é 转为 &#233;)。一个 emoji 按一个码位处理,而不是两个 UTF-16 代理项。
  • 解码:命名引用、十进制引用(&#65;)和十六进制引用(&#x41;)一次性解析,所以 &amp;lt; 只会变成 &lt;,不会继续解码。
  • 命名引用来自内置的约五十个名称(amp、lt、gt、quot、apos、nbsp、copy、euro、hellip 等),表外的名称保持不变。
  • 值为 0、位于代理区间或超出 Unicode 上限的数字引用,会按 HTML 标准变成替换字符 U+FFFD。

示例

输入 模式 结果
<a href="x"> 仅必需的 5 个 &lt;a href=&quot;x&quot;&gt;
é© 所有非 ASCII &#233;&#169;
👍 所有非 ASCII &#128077;
&copy; &#x1F44D; 解码 © 👍

常见问题

为什么要把文本编码成 HTML 实体?

直接放进页面的文本中,< 之类的字符会被当作标签解析。把必需的字符转成实体后,它们会按字面显示,也有助于防止脚本注入。但它不能代替服务器端正确的输出转义。

必需的 5 个字符是哪些?

& 符号、小于号、大于号、双引号和单引号。它们分别转为 &amp; &lt; &gt; &quot; 和 &#39;。

中文或带重音的字母也需要编码吗?

如果文档是 UTF-8,就不需要。只有当文本要放到编码不确定的地方,或只接受 ASCII 的系统中时,才使用所有非 ASCII 字符模式。

有些实体解码不了。

HTML 定义了两千多个命名实体。本工具内置约五十个常用名称,并支持所有数字引用;不认识的名称会原样保留。

没找到想要的工具?