HTML 实体编码 / 解码

将五个 HTML 特殊字符编码为实体,或将命名、十进制和十六进制实体解码还原为文本。

正在加载工具…

HTML 实体编码 / 解码将 HTML 中五个保留字符(&、<、>、"、')转义为安全的实体,或把命名、十进制和十六进制实体解码还原为纯文本。开启“编码所有非 ASCII 字符”可将 U+007F 以上的每个字符转换为数字实体。解码借助浏览器自带的 HTML 解析器,因此它能识别的实体都会被正确还原,且所有处理都在你的浏览器中完成。

HTML 实体编码 / 解码 是什么?

HTML 实体编码 / 解码是一款免费的在线工具,可在文本与 HTML 实体之间相互转换。编码模式会转义五个保留的 HTML 字符——& 符号(&amp;)、小于号(&lt;)、大于号(&gt;)、双引号(&quot;)和单引号(&#39;)——使文本可以安全地放入标记或属性中,而不会破坏页面或造成 XSS 漏洞。解码模式可解析任意形式的实体:命名引用(如 &copy;、&nbsp;)、十进制引用(如 &#169;)以及十六进制引用(如 &#xA9;)。Web 开发者、技术文档作者和 CMS 编辑常用它把代码示例粘贴进 HTML、清理用户提交的字符串,或把从订阅源、导出文件复制来的大量实体片段还原为纯文本。用分段切换在编码和解码之间切换,并在“设置”中开启“编码所有非 ASCII 字符”,即可把带重音的字母、CJK 字符和表情符号也转成数字实体。

如何使用 HTML 实体编码 / 解码

  1. 用顶部的分段切换选择编码(Encode)或解码(Decode)。
  2. 在输入框中粘贴或输入文本,结果会实时显示在下方的只读输出框中。
  3. 编码时,如果还想把 U+007F 以上的每个字符都转成数字 &#NNN; 实体,请打开“设置”并勾选“编码所有非 ASCII 字符”。
  4. 点击输出框上的复制按钮,复制编码或解码后的结果。
  5. 点击 Swap 将输出移入输入框并翻转模式以进行往返检验,或点击 Clear 重置输入。

示例

编码五个保留字符

输入

<a href="x">Tom & Jerry's</a>

输出

&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#39;s&lt;/a&gt;

解码混合的命名、十进制和十六进制实体

输入

100&nbsp;&#37; &#x263A; &copy;

输出

100 % ☺ ©

将所有非 ASCII 字符编码为数字实体

输入

Café & 日本

输出

Caf&#233; &amp; &#26085;&#26412;

常见问题

编码模式会转义哪些字符?
默认情况下只转义在 HTML 中具有特殊含义的五个字符:& 变为 &amp;,< 变为 &lt;,> 变为 &gt;," 变为 &quot;,' 变为 &#39;。& 符号会最先被转换,因此它生成的实体不会被二次转义。在“设置”中开启“编码所有非 ASCII 字符”后,还会把 U+007F 以上的每个字符转成数字 &#NNN; 实体。
解码模式能解析哪些类型的实体?
全部三种形式:命名引用(如 &amp;、&nbsp;、&copy; 和 &mdash;)、十进制数字引用(如 &#169;)以及十六进制数字引用(如 &#xA9;)。解码会把文本交给浏览器内置的 HTML 解析器,因此浏览器能识别的任何实体,都会与在真实页面上一样被还原。
编码能防止 XSS 吗?
转义 &、<、>、" 和 ' 是把不可信文本放入 HTML 正文内容和双引号属性值时的核心防护,而这正是本工具所做的事。它并不是适用于所有上下文(例如无引号属性、URL 或内联脚本)的完整清理器,因此请把它当作标准 HTML 输出的编码工具,而非完整的安全框架。
它能处理表情符号和基本平面以外的字符吗?
可以。编码按 Unicode 码点逐个遍历文本,因此像表情符号这样的代理对会被编码为单个正确的 &#NNN; 实体,而不会拆成两段错误的半字符;解码则会把数字实体还原为原始字符。
我的文本会被上传到服务器吗?
不会。编码和解码都完全在你的浏览器中运行——编码使用字符映射表,解码使用一个从未附加到页面的分离 textarea,因此不会执行任何脚本。任何内容都不会被上传、存储或发送至任何地方,因此用于私密代码、内部文案和未发布内容都很安全。

相关工具