HTML 实体编码 / 解码
将五个 HTML 特殊字符编码为实体,或将命名、十进制和十六进制实体解码还原为文本。
正在加载工具…
HTML 实体编码 / 解码 — 将 HTML 中五个保留字符(&、<、>、"、')转义为安全的实体,或把命名、十进制和十六进制实体解码还原为纯文本。开启“编码所有非 ASCII 字符”可将 U+007F 以上的每个字符转换为数字实体。解码借助浏览器自带的 HTML 解析器,因此它能识别的实体都会被正确还原,且所有处理都在你的浏览器中完成。
HTML 实体编码 / 解码 是什么?
HTML 实体编码 / 解码是一款免费的在线工具,可在文本与 HTML 实体之间相互转换。编码模式会转义五个保留的 HTML 字符——& 符号(&)、小于号(<)、大于号(>)、双引号(")和单引号(')——使文本可以安全地放入标记或属性中,而不会破坏页面或造成 XSS 漏洞。解码模式可解析任意形式的实体:命名引用(如 ©、 )、十进制引用(如 ©)以及十六进制引用(如 ©)。Web 开发者、技术文档作者和 CMS 编辑常用它把代码示例粘贴进 HTML、清理用户提交的字符串,或把从订阅源、导出文件复制来的大量实体片段还原为纯文本。用分段切换在编码和解码之间切换,并在“设置”中开启“编码所有非 ASCII 字符”,即可把带重音的字母、CJK 字符和表情符号也转成数字实体。
如何使用 HTML 实体编码 / 解码
- 用顶部的分段切换选择编码(Encode)或解码(Decode)。
- 在输入框中粘贴或输入文本,结果会实时显示在下方的只读输出框中。
- 编码时,如果还想把 U+007F 以上的每个字符都转成数字 &#NNN; 实体,请打开“设置”并勾选“编码所有非 ASCII 字符”。
- 点击输出框上的复制按钮,复制编码或解码后的结果。
- 点击 Swap 将输出移入输入框并翻转模式以进行往返检验,或点击 Clear 重置输入。
示例
编码五个保留字符
输入
<a href="x">Tom & Jerry's</a>
输出
<a href="x">Tom & Jerry's</a>
解码混合的命名、十进制和十六进制实体
输入
100 % ☺ ©
输出
100 % ☺ ©
将所有非 ASCII 字符编码为数字实体
输入
Café & 日本
输出
Café & 日本
常见问题
- 编码模式会转义哪些字符?
- 默认情况下只转义在 HTML 中具有特殊含义的五个字符:& 变为 &,< 变为 <,> 变为 >," 变为 ",' 变为 '。& 符号会最先被转换,因此它生成的实体不会被二次转义。在“设置”中开启“编码所有非 ASCII 字符”后,还会把 U+007F 以上的每个字符转成数字 &#NNN; 实体。
- 解码模式能解析哪些类型的实体?
- 全部三种形式:命名引用(如 &、 、© 和 —)、十进制数字引用(如 ©)以及十六进制数字引用(如 ©)。解码会把文本交给浏览器内置的 HTML 解析器,因此浏览器能识别的任何实体,都会与在真实页面上一样被还原。
- 编码能防止 XSS 吗?
- 转义 &、<、>、" 和 ' 是把不可信文本放入 HTML 正文内容和双引号属性值时的核心防护,而这正是本工具所做的事。它并不是适用于所有上下文(例如无引号属性、URL 或内联脚本)的完整清理器,因此请把它当作标准 HTML 输出的编码工具,而非完整的安全框架。
- 它能处理表情符号和基本平面以外的字符吗?
- 可以。编码按 Unicode 码点逐个遍历文本,因此像表情符号这样的代理对会被编码为单个正确的 &#NNN; 实体,而不会拆成两段错误的半字符;解码则会把数字实体还原为原始字符。
- 我的文本会被上传到服务器吗?
- 不会。编码和解码都完全在你的浏览器中运行——编码使用字符映射表,解码使用一个从未附加到页面的分离 textarea,因此不会执行任何脚本。任何内容都不会被上传、存储或发送至任何地方,因此用于私密代码、内部文案和未发布内容都很安全。