什么是 HTML 实体?
HTML 实体是表示保留字符或特殊字符的代码,例如用 < 表示 <、用 & 表示 &。在将用户输入渲染为 HTML 之前进行编码,可以保持标记有效并帮助防止跨站脚本攻击(XSS)。
功能
- • 仅编码保留字符,或编码所有非 ASCII 字符
- • 命名、十进制和十六进制实体格式
- • 解码所有 HTML5 命名和数字实体
- • 常用实体速查
本地处理
编码和解码都在浏览器中进行,您的内容不会发送到服务器。
在插入 HTML 前转义文本,可防止页面错乱和 XSS 攻击。
点击实体即可复制。
HTML 实体是表示保留字符或特殊字符的代码,例如用 < 表示 <、用 & 表示 &。在将用户输入渲染为 HTML 之前进行编码,可以保持标记有效并帮助防止跨站脚本攻击(XSS)。
编码和解码都在浏览器中进行,您的内容不会发送到服务器。
选择 Encode 把特殊字符转换为 HTML 实体,或选择 Decode 把 <、© 等实体还原为字符。
编码时选择模式:Basic 只转义 & < > " 和 ',Named 使用 é 这样的命名实体,Decimal 和 Hex 把所有非 ASCII 字符转换为数字引用。
粘贴文本或 HTML,结果会立即更新。
复制输出,或使用"将结果作为输入"继续处理。点击参考表中的条目即可复制常用实体。
要在博客或文档中把 <div class="box"> 作为文字显示,将其编码为 <div class="box">,浏览器就不会把它当作标签解析。
在把用户输入的文本插入 HTML 之前先转义,可以防止页面错乱和跨站脚本(XSS)。Basic 模式覆盖了最关键的五个字符。
页面或 RSS 中出现 &amp; 或 &quot;?解码一到两次,找出文本被多余转义的位置。
一些邮件模板、老旧 CMS 或 XML 源只接受 ASCII。Decimal 或 Hex 模式会把 é 或中文转换为 é 这样的引用,在任何编码下都不会乱码。
文本内容中必须转义 & 和 <。在属性值中,还要转义包裹该值的引号(" 或 ')。同时转义 > 是一种常见且无害的习惯。
两者显示效果相同。© 这样的命名实体更易读;© 这样的数字实体适用于所有 Unicode 字符,包括没有名称的字符。
对于标签之间或带引号属性中的文本,这是正确的防御方式。<script>、style、事件处理器或 URL 中的文本需要按上下文另行转义,现代框架会帮你处理。
如果页面以 UTF-8 提供(如今的默认做法)就不需要。只有在仅支持 ASCII 的系统中才需要实体。