HTML编码解码(转义 / 反转义)

粘贴进来就自动判断该转义还是反转义,在 HTML 特殊字符和实体编码(&、<、' 等)之间互相转换,还会列出每个字符转换了几次。全部在浏览器里处理,不上传服务器。

功能

  • 粘贴即自动判断是转义(编码)还是反转义(解码),也可以手动指定
  • 列出每个字符被转成了哪个实体、转换了几次
  • 命名实体(  等 HTML 规范里的全部名称)、十进制 A、十六进制 B 都能还原;也能把中文等字符转成数字实体
  • 全部在浏览器本地完成,输入的代码和文本不会发送到服务器

适用场景

在博客、文档里贴代码

在 CSDN、掘金、公众号后台或自己的博客里展示 HTML 源码时,先转义,标签就不会被浏览器执行。

学习和检查 XSS 防护

看用户输入在转义前后有什么不同,按明细确认 < > " ' 都处理到了,适合学习 Web 安全。

还原爬下来的文本

爬虫或接口返回的内容里常夹着 &amp;、&quot;、&#x4e2d; 之类的实体,粘进来即可还原成正常文字。

嵌进属性值或模板

把字符串放进 HTML 属性、Vue/模板引擎之前先转义,需要时连引号一起处理。

隐私

本工具完全在浏览器内运行。输入的代码和文本只在你的设备上转换,不会发送到任何服务器,也无需注册。

常见问题

为什么要做 HTML 转义?

直接写 & 或 <,浏览器会把它们当成实体或标签来解析,轻则页面显示错乱,重则被插入脚本,造成 XSS(跨站脚本攻击)。把特殊字符转成实体编码后,浏览器就会把它们当作普通文字显示。

为什么单引号转成 &#39; 而不是 &apos;?

&apos; 在 HTML4 中没有定义,一些老旧环境不认识。数字实体 &#39; 在任何环境下都能正确显示,所以优先保证兼容性。

能还原哪些实体?

&amp;、&nbsp;、&copy; 这类命名实体(覆盖 HTML 规范定义的全部名称),以及 &#65; 这样的十进制和 &#x4e2d; 这样的十六进制数字实体,都能还原。拼写不存在的实体(如 &foo;)会原样保留。

输入的内容会被上传吗?

不会。转换全部由浏览器里的 JavaScript 完成,文本不会发送到任何外部服务器,断网也能用。

相关工具

等待输入
选项
0 个字符
0 个字符

转换明细

没有需要转换的字符

HTML 中必须转义的 5 个特殊字符

字符 实体编码 含义及转义原因
& &amp; 和号(&)。它是实体编码的开头,所以必须最先转义
< &lt; 小于号。会被浏览器当成标签的开始
> &gt; 大于号。会被当成标签的结束
" &quot; 双引号。会提前截⁠断属性值
' &#39; 单引号。为了兼容 HTML4,用 &#39; 而不是 &apos;