跳到主要内容

HTML 实体编解码工具

把尖括号、与号等字符转成 HTML 实体,或把命名实体与数字实体还原成字符。

常用实体速查

点一行把它追加到左侧输入框。

解码只认带分号的写法。`&copy` 这类不带分号的写法很容易误伤(`&copycat` 会被当成实体),所以不做兼容。

解码不经过 DOM 解析,只做字符串替换,不会因为输入里有标签就执行它。

这个工具是什么

HTML 实体编解码工具在两个方向之间转换:把尖括号、与号这类有特殊含义的字符转成实体写法,或者反过来把 ©中 这样的实体还原成能读的字符。

什么时候用它

  1. 要在页面上原样展示一段 HTML 代码,先转义再贴,否则会被浏览器当成标签解析。
  2. 接口返回的内容里全是转义写法,想知道原文写的是什么。
  3. 页面上显示了   这几个字符本身,多半是转义做了两次,用它确认一下。
  4. 整理数据时确认那段文本里到底有哪些不可见字符。

有什么限制

  • 解码只认带分号的写法。不带分号的原样保留,因为宽匹配会把 &copycat 这种普通文本误伤成实体。
  • 命名实体表收了常用的一批,不是 HTML4 全表。冷门实体认不出会原样保留,不会猜一个结果给你。
  • 不做实体嵌套的连续还原:< 只会解成 < 一层。这样能避免把用户输入里的实体两次解码后变成可执行内容。
  • 编码中文时默认不动,勾选「把中文等非 ASCII 也转成数字实体」才会输出数字实体。默认不动是为了转义后仍然能直接读。
  • 解码结果只是文本。本页用纯文本方式渲染,不会执行还原出来的标签。

常见问题

Q:解码时会不会把危险标签还原出来并被执行? A:不会。这里只做字符串替换,不经过 DOM 解析,还原出来的标签在页面上仍然按文字显示。

Q:为什么不带分号的 &amp 没被解码? A:标准只保证带分号的写法。不带分号时无法判断 &copycat 到底是实体加字母还是一段普通文字,所以统一不解码。

Q:编码后中文变成实体、内容变长了怎么办? A:取消勾选「把中文等非 ASCII 也转成数字实体」即可,只转义必须转的那几个字符。

相关工具

同类或常用搭配,接着往下做