123问免费工具与知识服务
123问工具大全 工具大全 文本工具 HTML转义

<& HTML转义

HTML实体转义 / 反转义 / URL编码

HTML转义常见问题

HTML转义是什么?

HTML转义是将特殊字符(<、>、&、"、')转换为HTML实体(&lt; &gt; &amp; &quot; &#39;),防止浏览器解析为HTML标签。用于在网页中显示代码或用户输入内容。

为什么要HTML转义?

防止XSS攻击。用户输入的<script>如不转义会被浏览器执行。转义后显示为文本而非执行代码。所有用户输入在输出到HTML前都应转义。

HTML实体有哪些常用对应?

&lt;=&lt;、&gt;=&gt;、&amp;=&amp;、&quot;=&quot;、&#39;=(单引号&#39;)。还有空格&nbsp;、版权&copy;等。转义后&会被编码成&amp;。

HTML转义和URL编码是一回事吗?

不是。HTML转义处理HTML里的特殊字符(<、>、&、"、'),用&实体表示;URL编码处理URL里的特殊字符(中文、空格、:、/等),用%xx表示。两种场景完全不同。

转义后还能还原吗?

能。反转义(HTML实体解码)可以把&lt;还原成<、&amp;还原成&。但要注意多次转义会叠加,比如总字数里&被转成&amp;后,再转一次会变成&amp;amp;。

XSS攻击有多危险?

如果用户输入没转义就输出到页面,攻击者可以注入<script>窃取cookie、跳转钓鱼、篡改页面。这是OWASP Top 10常年上榜的Web安全漏洞,每个开发者都要防。

PHP里怎么安全转义?

PHP用htmlspecialchars($str, ENT_QUOTES, 'UTF-8')转义,它默认转义<、>、&、"(加ENT_QUOTES带上单引号)。前端框架(如React的{})会自动转义,但用innerHTML拼接时需手动转义。

本工具转义结果能直接贴到代码里吗?

可以。把转义后的字符串放进HTML标签的内容区(如<p>...</p>)即可安全显示原文,浏览器会把它当文本渲染而不是执行。

HTML转义 - 示例演示

示例一:XSS脚本转义

输入:输入:
结果:转义后:<script>alert("XSS")</script>
转义后浏览器只显示这段文本,不会执行alert。这是最核心的防XSS用法。

示例二:显示代码示例

输入:输入:
你好
结果:转义后:<div class="box">你好</div>
在博客/文档里展示HTML代码时,先转义才能让代码原样显示而不是被渲染成元素。

示例三:URL编码对比

输入:输入:中文 与 空格
结果:URL编码:中%E6%96%87%20%E4%B8%8E%20%E7%A9%BA%E6%A0%BC(空格变%20)
URL编码和HTML转义不同,它把非ASCII和中文字节转成%xx,用于拼接网址和查询参数。

HTML转义深度解读

HTML 实体的本质:&开头;结尾

HTML实体是"以&开头、以;结尾"的字符引用。分两种:命名实体(如©)和数字实体(如©)。浏览器解析时会把它渲染成对应字符。

常用HTML实体速查
字符实体用途
<&lt;小于号
>&gt;大于号
&&amp;和号
"&quot;双引号
'&#39;单引号
&nbsp;不换行空格
©&copy;版权符号

记住&一定要先转成&,否则可能被解析成实体开头。

为什么转义是防XSS的第一道防线

存储型XSS:恶意代码存在数据库,用户浏览时执行。反射型XSS:恶意代码随URL带入。无论哪种,根因都是"不信任的输入被当成了代码执行"。

转义(编码输出)就是让浏览器把输入当"文本"而不是"代码"。这是最基础也最有效的防御手段,配合CSP、内容过滤等共同保障安全。

转义、解码、编码的边界

  • HTML转义:在"输出HTML"时对特殊字符编码。
  • HTML反转义:把&实体还原成原始字符。
  • URL编码:在"拼接URL"时对非ASCII/特殊字符编码。
  • JavaScript转义:在JS字符串里对引号、反斜杠处理。

四种场景各有一套规则,别混用。用错可能导致乱码或安全漏洞。

真实项目里的转义实践

  • 用框架(React/Vue)时:默认转义,别用v-html/dangerouslySetInnerHTML传用户数据。
  • 用PHP时:白名单校验+htmlspecialchars输出。
  • 富文本:用专门的净化库(如DOMPurify)过滤标签白名单。
  • 永远不要相信用户输入,输出前一律转义。

HTML转义参考数据

HTML转义 vs URL编码 vs JS转义

场景处理对象示例结果
HTML转义< > & " '&lt; &gt; &amp; &quot; &#39;
URL编码中文 空格 : / ?%E4%B8%AD %20 %3A %2F %3F
JS转义引号 \ 换行\" \\ \n

使用说明

使用方法

1. 输入文本。

2. 选择转义或反转义。

3. 复制结果。

分享工具: Facebook Twitter 微博 复制链接