实用工具

HTML 实体编码与解码

转义会破坏标记的字符,或把实体还原成文本。

浏览器本地运行编码转换3597
免费

输入

0 B50.0 KB 以内免费

结果

结果会显示在这里。

你的运行记录

只有消耗积分的运行才会保存。

登录后可以保留你的运行记录。

转义那五个能突破标记的字符——& < > " '——正是让用户文本不会变成用户标记的关键。这个工具负责编码它们,反方向则能解码具名、十进制和十六进制引用,包括 emoji 和生僻文字常以数字引用形式出现的那些。

它是怎么工作的

  • 最小模式只转义那五个真正影响正确性的字符,输出仍然可读。
  • 全量模式会转义 ASCII 字母数字之外的所有字符,供无法承载 UTF-8 的场景使用。
  • 解码支持具名、十进制和十六进制引用,无法识别的引用会原样保留。

你的数据去了哪里

哪也没去。本工具完全在你的浏览器里运行:你粘贴的文本由页面处理,不会传输到任何服务器,也不会写进任何日志。

当一次运行消耗积分时,会向你自己的历史里保存一行摘要,方便回头查找。摘要记录的是这次运行的形态——大小、数量、你查询的值——而不是你粘贴的内容。

它要花多少

单次 50.0 KB 以内免费,无需账号。超出部分每次运行消耗 1 积分,并保存到你的历史记录。

积分来自注册、每日签到、发表评论和完善资料。

了解积分规则

常见问题

做了转义就能防住 XSS 吗?
只对 HTML 正文里的文本成立。在属性内部、script 块内部或 URL 中,转义规则是不同的,在那些位置仅做实体编码并不够。对任何用户可控的内容,请使用框架提供的按上下文转义。
&nbsp; 和空格有什么不同?
不换行空格会阻止折行,也不会与相邻空白合并。从网页复制到代码里时它看起来就是个空格,却会让解析失败——这正是调试前先解码文本很值得的原因。
所有非 ASCII 字符都需要转义吗?
不需要。以 UTF-8 提供的页面能直接处理它们,转义反而让源码更难读。全量模式是为那些编码不可信的老旧链路准备的。

背后的开源项目

本工具是独立实现,并未打包第三方库。mathiasbynens/he(MIT)在代码层面做的是同一件事——如果你需要在自己的程序里实现它,从那里开始,而不是调用一个网页。

mathiasbynens/he

也常被称作

  • html实体编码
  • html转义
  • html解码
  • 转义字符转换
  • html反转义