这个工具是什么
HTML 实体编解码工具在两个方向之间转换:把尖括号、与号这类有特殊含义的字符转成实体写法,或者反过来把 ©、中 这样的实体还原成能读的字符。
什么时候用它
- 要在页面上原样展示一段 HTML 代码,先转义再贴,否则会被浏览器当成标签解析。
- 接口返回的内容里全是转义写法,想知道原文写的是什么。
- 页面上显示了
这几个字符本身,多半是转义做了两次,用它确认一下。 - 整理数据时确认那段文本里到底有哪些不可见字符。
有什么限制
- 解码只认带分号的写法。不带分号的原样保留,因为宽匹配会把
©cat这种普通文本误伤成实体。 - 命名实体表收了常用的一批,不是 HTML4 全表。冷门实体认不出会原样保留,不会猜一个结果给你。
- 不做实体嵌套的连续还原:
&lt;只会解成<一层。这样能避免把用户输入里的实体两次解码后变成可执行内容。 - 编码中文时默认不动,勾选「把中文等非 ASCII 也转成数字实体」才会输出数字实体。默认不动是为了转义后仍然能直接读。
- 解码结果只是文本。本页用纯文本方式渲染,不会执行还原出来的标签。
常见问题
Q:解码时会不会把危险标签还原出来并被执行? A:不会。这里只做字符串替换,不经过 DOM 解析,还原出来的标签在页面上仍然按文字显示。
Q:为什么不带分号的 & 没被解码?
A:标准只保证带分号的写法。不带分号时无法判断 ©cat 到底是实体加字母还是一段普通文字,所以统一不解码。
Q:编码后中文变成实体、内容变长了怎么办? A:取消勾选「把中文等非 ASCII 也转成数字实体」即可,只转义必须转的那几个字符。