写邮件模板、拼富文本、往页面里输出用户内容时,<、&、引号只要漏转一个,页面结构就乱了。把文本粘进来,一键转义成 HTML 实体,或把实体还原成原始字符,结果随手复制。
" → ",' → '
默认只处理 &、<、> 三个必转字符,其余内容原样保留。
输入内容后选择「转义」或「反转义」
| 字符 | 命名实体 | 数字实体 | 说明 |
|---|---|---|---|
| & | & |
& |
与号:实体自身的起始字符,必须最先转义 |
| < | < |
< |
小于号:会被当作标签起始,输出到页面时必须转 |
| > | > |
> |
大于号:与小于号成对出现,建议一起转 |
| " | " |
" |
双引号:写在属性值里必须转义 |
| ' | ' |
' |
单引号:HTML5 支持 ',兼容老浏览器用数字实体更稳 |
| © | © |
© |
版权符号 |
| ® | ® |
® |
注册商标符号 |
| × | × |
× |
乘号 |
| ÷ | ÷ |
÷ |
除号 |
| ¥ | ¥ |
¥ |
人民币 / 日元符号 |
| — | — |
— |
长破折号 |
| → | → |
→ |
右箭头 |
| ° | ° |
° |
度数符号 |
补充:不换行空格的命名实体是 ,数字实体是  ,它看起来与普通空格几乎一样,但浏览器既不会把它合并,也不会在此处换行。数字实体里的数字是十进制 Unicode 码点,也可写成十六进制,例如 & 等价于 &。
HTML 里 <、>、& 和引号都是有特殊含义的字符:浏览器看到 <div> 会当作标签解析,而不是老老实实显示这几个字符。所谓 HTML 实体转义,就是把这些字符换成对应的实体写法——< 换成 <、& 换成 &,让内容「看起来是文字,而不是代码」。
反过来,从网页源码、数据库字段、接口返回值里复制出来的文本,常常是满屏的 "、'、&,人根本没法读。把整段粘进来点「反转义」,立刻还原成可读的原始文本,手工核对数据、写 SQL 比对时特别省事。
更关键的是安全:把用户输入原样拼进 HTML 是最典型的 XSS 注入来源,正确做法是输出时统一转义。本工具也能当「输出转义」的写法参考:先转 &,再转 <、>(顺序不能反,否则会二次转义),进入属性值或 JSON 字符串时再补上单双引号。
所有转换都在你的浏览器里用原生 JavaScript 完成,粘贴的内容不会上传到服务器;反转义借用浏览器自身的 HTML 解析器,命名实体(©)与数字实体(©、©)都能正确还原。
&、<、>;要写进属性值或 JSON 字符串时勾选「连引号一起转义」。&,再 <、>。反过来先转 <,后面那一步会把刚生成的 < 里的 & 再转一次,得到 &lt;。&lt; 反转义一次得到 <,再转一次才是 <。&amp; 这种多层写法,基本可以判定是被转义了多次,多半是模板里又转了一遍。< → <、& → &),让内容安全地显示在页面上;反转义正好相反,把 <、' 这类实体还原成 <、'。日常场景:准备插入 HTML 用转义,读别人给的源码用反转义。& 开头。若先把 < 转成 <,再执行 & → &,那一步会连带把刚生成的 < 里的 & 也转掉,变成 &lt;,页面上就会多出一串字符。正确顺序永远是 & → < → > → 引号。& < >,需要更彻底时勾选「连引号一起转义」。©、 )、十进制数字实体(©)、十六进制数字实体(©)都有效。冷门的 HTML5 实体按当前浏览器的支持情况解析,主流浏览器覆盖已足够全。<script> 之类内容,还原后就变回了可解析的标签,直接输出到页面会带来 XSS 风险。反转义结果请当作纯文本看待,需要展示时再统一转义,或用 textContent 赋值。审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!