EN
首页 分类 HTML 实体转义

HTML 实体转义

< > & 等实体转换

常见问题

为什么要把尖括号转义?

不转义浏览器会把它们当标签解析。把用户输入直接拼进页面就是典型的 XSS 漏洞来源。

& 和 < 分别代表什么?

&amp; 是 &,&lt; 是 <,&gt; 是 >。实体以 & 开头、以分号结尾。

转义后页面显示会变吗?

不会。浏览器会把实体渲染回原字符,用户看到的仍是尖括号,只有源码里是转义形式。

关于这个工具

编码只处理四个字符:&、<、>、"。这四个是把文本放进 HTML 时唯一必须转的 —— 不转的话浏览器会把 < 当成标签开始,把 & 当成实体开头。顺序也是固定的:先转 &,否则后面转出来的实体会被自己再转一遍。

解码是单次扫描的:&amp;lt; 只解一层,得到 &lt; 而不是 <。这一点很关键 —— 分成几步依次替换的写法会把 &amp;lt; 二次解码成尖括号,等于凭空篡改了内容。同时支持十进制与十六进制数字实体(&#39;、&#x27;)和 &apos;。

两个边界要知道:单引号在编码时不转(有些场合需要,比如属性用单引号包裹、或 JSON 串嵌在 onclick 里),需要时手工补 &#39;;命名实体远不止这几个,&nbsp;、&copy;、&mdash; 之类解码时会原样留着,本工具不查实体表。

要提醒的是:转义能防的是「文本被当成标记解析」,不等于完整的 XSS 防护。把用户输入拼进属性值、内联脚本或 javascript: 链接时,各自还有各自的规则;真正安全的做法是交给 DOM API(textContent)或模板引擎自动转义,而不是手工拼字符串。