编码、解码与可扫描码

HTML 编码解码

粘贴普通文本、模板片段、属性值或实体字符串,即可在浏览器内完成 HTML 实体编码与解码。编码模式可以转义尖括号、引号、单引号和与号等会影响 HTML 解析的字符,也可以使用 extensive HTML5 实体模式生成更广泛的实体输出。解码模式会还原命名实体、十进制数字实体和十六进制数字实体,便于检查富文本、爬虫结果、日志字段和重复编码问题。

  • 编码尖括号、引号、单引号和与号,减少文本被浏览器当成标签或属性结构解析的机会
  • 日常 HTML 安全展示可选择特殊字符转义,需要更广泛兼容性时可选择 extensive HTML5 实体输出
  • 解码命名实体、十进制数字实体和十六进制数字实体,未知实体保持原样
  • 适合模板文本、属性值、富文本、邮件源码、CMS 内容、爬虫结果和日志字段排查
  • 支持把输出重新作为输入,检查是否出现重复编码、缺失实体或不可逆的上下文处理
  • 所有转换都在当前浏览器标签页内完成,粘贴的内容不会上传
工具/HTML 编码解码
0 字符
等待输入
结果会显示在这里...
编码 · 特殊字符
HTML 实体命令

功能简介

一个本地 HTML 实体工作台,用来判断内容是否应该作为文本展示、是否已经被实体化,以及进入属性、邮件、CMS 或日志前还需要哪一层编码。

  1. 01

    特殊字符编码

    把尖括号、双引号、单引号和与号转换成对应实体,适合把代码样例、用户输入或普通文案放进 HTML 文本节点和属性值中展示。

  2. 02

    Extensive HTML5 实体编码

    使用 extensive HTML5 实体输出时,符号、标点、数学字符、货币符号和其他受支持字符可以表示为实体,适合旧系统、邮件源码或明确要求实体输出的场景。

  3. 03

    实体解码

    把命名实体、十进制数字实体和十六进制数字实体还原为可读文本,便于判断真实内容、重复编码层数和来源系统的输出规则。

  4. 04

    模板输出检查

    快速确认模板输出中的文本是未编码、编码一次,还是被重复编码,避免代码样例、用户文本和富文本摘要被错误解析或错误展示。

  5. 05

    属性文本处理

    处理 title、alt、aria-label 和 data 属性里的文本,重点关注引号、单引号、与号和尖括号,减少属性边界被打断的风险。

  6. 06

    往返验证

    把输出作为输入并切换模式,可以检查内容在编码和解码之间是否保持一致,也能快速发现重复实体化或误把 HTML 当文本的情况。

  7. 07

    示例输入

    内置 HTML 片段、属性文本和实体文本示例,方便先确认当前模式,再粘贴真实内容。

  8. 08

    本地处理

    转换、复制和往返检查都在浏览器内完成。模板草稿、邮件源码、内部日志和 CMS 内容不会离开本机。

如何使用

选择转换方向,粘贴输入,需要时选择编码模式,输出会实时更新。

  1. 01

    在转换模式中选择编码或解码。

  2. 02

    把文本、HTML 片段或实体字符串粘贴到输入区。

  3. 03

    编码时,如果只需要处理 HTML 结构敏感字符,使用特殊字符模式;如果需要更广泛的实体输出,使用 extensive HTML5 实体模式。

  4. 04

    检查输出区结果,并确认它将用于文本节点、属性值还是文档展示。

  5. 05

    复制结果,或将输出作为输入并切换模式,验证是否能还原为原始文本。

功能说明

HTML 实体转换的关键不是多转几个字符,而是弄清内容将进入文本节点、属性值、邮件源码还是其他格式边界。

  • 页面正文要展示代码样例、尖括号文本或用户输入时,使用编码的特殊字符模式。
  • 处理属性值时,重点编码引号、单引号、与号和尖括号;如果属性本身是 URL,还要继续使用 URL 编码规则。
  • 看到邮件源码、CMS 字段、爬虫结果或日志里有实体文本时,使用解码,先确认真实字符再做后续清洗。
  • 面向旧系统、邮件源码或明确要求实体输出的场景,如果需要更广泛的命名实体或数字实体输出,可以使用 extensive HTML5 实体模式。
  • 内容如果还要进入 JSON、JavaScript 字符串或 CSS,请在对应边界再使用对应编码方式,不要把 HTML 实体当成通用转义。
  • 需要允许部分 HTML 标签时,请使用 HTML 净化器和允许列表。实体编码只改变字符表示,不负责筛选标签和属性。

适合哪些场景

HTML 实体经常出现在模板、富文本、邮件、爬虫结果、CMS 和日志排查中。这个工具适合处理小段文本的查看、转换和复制。

  1. 展示代码样例

    把一段标签示例编码后放进文档正文,浏览器会把它显示为文本,而不是当成真实 HTML 解析。

  2. 处理属性值

    给 title、alt、aria-label 或 data 属性准备文本时,先把引号和与号编码,减少破坏属性结构的风险。

  3. 排查模板输出

    比较模板渲染前后的文本,判断内容是未编码、编码一次,还是被重复编码。

  4. 富文本内容检查

    从编辑器、CMS 或数据库字段中取出实体文本,解码后查看用户真正输入了什么。

  5. 邮件源码阅读

    邮件模板和 HTML 邮件源码常带有实体。解码后可以更快检查标题、按钮文案和法律声明。

  6. 爬虫和日志清理

    把采集结果、错误日志或接口响应中的实体还原,便于人工阅读和后续清洗。

  7. 符号与旧系统链路处理

    当特殊符号、标点、数学字符或旧系统输出要求需要实体形式表示时,可以使用 extensive HTML5 实体模式。

  8. 编码策略确认

    在调整模板引擎、转义函数或 CMS 输出规则前,用小样本验证实体转换是否符合预期。

延伸阅读

如果实体化后的文本还要进入链接参数,请继续用 URL 编码解码 处理百分号编码。需要把图片以内联资源放进 HTML、CSS 或 Markdown 时,可以先用 图片转 Base64 生成 Data URL;如果处理的是普通文本、token 片段或配置值,再切换到 Base64 编码解码 做 Base64 往返校验。

使用建议

HTML 实体问题通常来自上下文混淆、重复编码、模板引擎自动转义和手动处理叠加。

  • 先确认内容进入的是 HTML 文本节点、属性值,还是另一个格式。不同位置需要不同规则。
  • 编码前先判断文本是否已经包含实体。已经实体化的内容再次编码后,常见结果是与号被重复转换。
  • 用户可见文案通常只需要特殊字符转义。Extensive 实体输出更适合旧系统、邮件源码或明确要求实体输出的场景。
  • 模板引擎通常自带转义机制。不要在同一段内容上同时手动编码和自动转义,除非你明确需要双层文本展示。
  • 解码适合查看和排查,但不要把解码后的不可信 HTML 直接插入页面,也不要把它交给不受控的 HTML 渲染接口。
  • 需要允许一部分标签时,应使用成熟的 HTML sanitizer,并明确允许哪些标签、属性和协议。
  • 内容如果还要进入 URL、JSON、JavaScript 或 CSS,请在对应边界再使用对应编码方式。
  • 上线前用小样本做一次编码和解码往返,确认特殊符号、多语言字符和 Emoji 没有被误删或重复实体化。

边界与注意事项

HTML 实体转换只解决字符表示问题,不等同于完整的内容安全策略。

  • HTML 实体编码不是加密,也不是权限控制。任何人都可以解码。
  • HTML 实体编码不是完整的 XSS 防护。真实页面仍需要上下文转义、HTML 净化、CSP 和安全的渲染策略。
  • 这个工具按实体库的 HTML5 实体规则解码。未知实体通常会保持原样,而不是报错。
  • 特殊字符模式主要处理 HTML 结构敏感字符,不会尝试改写普通文本、Emoji 或大多数符号。
  • Extensive HTML5 实体模式可能让输出变长,因为更多受支持字符会表示为命名实体或数字实体。
  • 不要把解码后的不可信 HTML 直接作为页面内容插入,尤其不要使用不受控的 HTML 注入接口。
  • 几十 MB 的输入会让文本框和剪贴板明显变慢,这种规模更适合脚本或流式处理。

常见问题

这里整理了实体编码范围、重复编码、安全边界、属性文本和本地处理相关问题。

HTML 编码和 HTML 转义是一回事吗?

日常语境中常常混用。这里的编码指把会影响 HTML 解析的字符转换成实体,例如尖括号、引号和与号。实际工程中仍要按文本节点、属性值、脚本和样式等上下文分别处理。

为什么与号需要先编码?

与号是实体的起始字符。如果不处理它,文本里的实体样式内容可能会被浏览器继续解析,或者在二次处理时产生歧义。

为什么会看到与号被重复转换?

这通常表示内容被编码了两次。第一次把与号变成实体,第二次又把这段文本中的与号再次编码。可以解码一次检查原始内容。

特殊字符模式和 extensive 模式有什么区别?

特殊字符模式主要处理尖括号、引号、单引号和与号等容易影响 HTML 解析的字符。Extensive 模式会对更多受支持的符号和字符使用更广泛的 HTML5 实体输出。

解码会执行 HTML 或脚本吗?

不会。工具只把实体转换成文本字符,不会把结果插入页面执行。你仍然不应该把解码后的不可信 HTML 直接渲染到业务页面。

这个工具能防止 XSS 吗?

不能单独承担这个责任。实体编码是上下文转义的一部分,但 XSS 防护还需要安全模板、净化器、CSP、可信输入边界和正确的渲染方式。

属性值里应该编码哪些字符?

至少应处理引号、单引号、与号和尖括号。具体规则还取决于属性如何包裹、是否进入 URL 属性,以及模板引擎是否已经转义。

我的内容会上传到服务器吗?

不会。编码、解码、复制和将输出作为输入都在当前浏览器标签页内完成。输入不会发送到服务器。

更多相关工具

可以继续处理相邻任务:把实体文本放进 URL 参数,把图片转成 Data URL,或检查普通文本的 Base64 往返。