HTML 实体编解码
转义与还原 HTML 实体,支持命名、十进制、十六进制三种写法
编码选项
开启后中文与 emoji 也会被转成实体,输出为纯 ASCII;仅在对接老旧系统时需要
检测到未转义的 HTML 标签。若这些内容来自用户输入,直接插入页面会造成 XSS 风险,务必先转义。
转换结果共 9 个实体
常用实体速查
| 实体 | 字符 | 码点 |
|---|---|---|
| & | & | U+0026 |
| < | < | U+003C |
| > | > | U+003E |
| " | " | U+0022 |
| ' | ' | U+0027 |
| | U+00A0 | |
| © | © | U+00A9 |
| ® | ® | U+00AE |
| ™ | ™ | U+2122 |
| — | — | U+2014 |
| … | … | U+2026 |
| × | × | U+00D7 |
| ° | ° | U+00B0 |
| € | € | U+20AC |
| ← | ← | U+2190 |
| → | → | U+2192 |
最后更新:2026-10-10
工具介绍
HTML 实体最常见的用途是防止用户输入被当作标签执行 —— 也就是防 XSS。但把所有字符都转义成 你 这种形式既没必要也不可读,实际只有五个字符必须转义。本工具让你在「最小转义」与「全转义」之间自由选择,并在解码时宽容处理拼写错误的实体。
功能特性
最小转义模式
默认只转义 & < > " ' 五个字符 —— 这是安全所需的最小集合。转义后的文本仍然可读,不像全转义那样变成天书。
全部非 ASCII 转义
需要输出纯 ASCII 时(如对接只支持 ASCII 的老旧系统或邮件模板),可开启此选项把中文与 emoji 一并转成实体。
三种实体写法
命名实体(&)、十进制(&)、十六进制(&)可自由选择。三者等价,不同场景各有习惯,比如十六进制在 CSS 与 SVG 里更常见。
宽容解码
粘贴的文本里常混有拼错的实体(&#xZZ;、不存在的命名实体),这些会被原样保留并单独列出,而不是让整段解码失败或静默丢字符。
按码点处理
emoji 与生僻汉字按 Unicode 码点整体处理 —— 比如 😀 会正确转成 😀 或 😀,而不是被拆成两个无效的代理项。
XSS 风险提示
若输入的文本中含有未转义的 HTML 标签,工具会明确警告 —— 直接把它插入页面就是 XSS 漏洞。
怎么用
- 1
选择方向
把标签安全地写进页面用「编码」;把页面源码里的转义文本读回原文用「解码」。
- 2
按需调整选项
多数场景保持默认的最小转义即可。只有明确需要纯 ASCII 输出时才开启「转义全部非 ASCII」。
- 3
粘贴文本
结果实时更新,无需点按钮。解码模式下列在下方的是未能识别的实体片段。
- 4
复制结果
直接复制即可粘进模板或代码。若提示了 XSS 风险,务必确认这些内容是可信来源,否则应先转义。
参数说明
- 必要转义字符
- 共五个:& (实体引导符)、< 与 > (标签边界)、" 与 ' (属性值定界符)。只有这五个字符不转义会造成解析错误或安全问题,其余都可保留原文。
- 命名实体
- 形如 &、<、©,用可读的名字表示。优点是直观,缺点是数量有限 —— 中文、emoji 都没有对应的命名实体,只能退回数字形式。
- 十进制实体
- 形如 你,用十进制码点表示任意字符。兼容性最好,所有浏览器与解析器都支持。
- 十六进制实体
- 形如 你,用十六进制码点表示。在 CSS、SVG 与 JavaScript 中更常见,因为那些环境习惯用十六进制表示码点。
- 无效码点
- 超出 Unicode 范围(大于 U+10FFFF)或落在代理区(U+D800–U+DFFF)的码点不是合法字符,本工具会拒绝解码并原样保留。
适用场景
- 把用户输入安全地展示在页面上(防 XSS)
- 把转义过的 HTML 源码还原成可读内容
- 为老旧系统生成纯 ASCII 的文本输出
- 在 HTML 里插入 ©、™、→ 等特殊符号
- 查看一段实体文本背后到底是什么字符
- 调试页面显示乱码或标点错位的问题
- 确认某个实体拼写是否正确
常见问题
关于这个工具,你可能会问
什么时候必须转义 HTML 实体?
只要把不可信内容插入 HTML 就需要。最常见的是 &(否则 AT&T 会被当成实体前缀)、< 与 >(否则会被解析成标签,这是 XSS 的主要入口)、以及引号(否则在属性值里会提前闭合)。其余字符转义与否只影响可读性,不影响安全。
编码和转义是一回事吗?
在 HTML 语境下基本是一回事,都是把特殊字符换成实体形式。但要注意实体**不是**用于防 SQL 注入的手段 —— 数据库转义要用参数化查询。混用这两者是很危险的做法。
命名实体和数字实体该用哪个?
功能上等价,选哪个看场景。命名实体(&)可读性好,适合手写模板;数字实体(& 或 &)能表示任意字符,适合程序生成。需要注意的是中文与 emoji 没有命名实体,只能用数字形式。
为什么 看起来像普通空格但不是?
是不换行空格(U+00A0),它的作用恰恰是**阻止**在此处换行,同时它在视觉上比普通空格略宽。因为看起来一样,它是排版问题的常见来源 —— 从网页复制文本时经常带进来,可以用本工具的速查表确认码点是 160 而不是 32。
转义后还能被浏览器正确解析吗?
能。实体是 HTML 规范的一部分,浏览器会先把它们解码成对应字符,再交给渲染引擎。对浏览器而言,<div> 显示的就是文本 <div>,不会被当成标签。
解码时遇到拼错的实体会怎样?
本工具会把无法识别的片段**原样保留**,并在结果下方单独列出,而不是丢弃或替换成问号。这样你能立刻看到问题出在哪里,而不用逐字符比对找出内容为什么少了。
为什么开启全转义后中文变成了数字?
因为中文没有命名实体 —— HTML 规范只定义了约 2000 个命名实体,主要覆盖西欧字符与数学符号,中文、日文、韩文以及 emoji 都不在其中,只能退回数字实体形式。这是规范限制,不是工具的问题。
输入内容会被上传吗?
不会。编码与解码全部由浏览器本地完成,不产生网络请求。即使处理的是含敏感信息的模板内容,也不会离开你的设备。