功能开发中

html实体转义

编码和解码HTML实体。

常见HTML实体对照表:

字符 实体编码 描述
< &lt; 小于号
> &gt; 大于号
& &amp; 和号
" &quot; 双引号
' &#39; 单引号
使用教程
  1. 编码模式 (Encode Mode - 字符 → 实体):
  2. 解码模式 (Decode Mode - 实体 → 字符):
  3. 编码后的安全文本可直接安全地嵌入(safely embed) 到:
使用场景
  • XSS 防护 (Cross-Site Scripting Prevention):在将用户生成内容(user-generated content / UGC) 渲染到 HTML 页面前端(before rendering to DOM) 先做实体编码(entity-encode) 阻断恶意脚本注入(malicious script injection vector):<img src=x onerror="alert(1)"> → 安全的纯文本显示。
  • CMS 内容发布系统 (Content Management System Publishing):WordPress / Drupal / Ghost 博客平台后台编辑器(editor) 或自定义 CMS 的富文本字段(rich text field/WYSIWYG editor) 中正确显示代码片段(code snippets) 和数学符号(math symbols)。
  • 前端模板引擎 (Front-end Template Rendering):Vue.js / React / Angular / Smarty / Twig / Blade / EJS 等框架的视图层(view layer) 中将变量(variables) 安全插值到 HTML 属性(attributes) 时自动转义(escape)。
  • RSS / Atom Feed 生成:在 XML 文档(documents) 中对 & / < / > / " 等元字符(meta-characters) 做 entity escape 保证格式合法性(well-formedness validity) 通过 XML validator 验证。
  • 邮件模板开发 (Email Template Development):HTML 电子邮件(newsletter / marketing email / transactional email) 的 MIME body 中嵌入动态内容(dynamic content) 时的特殊字符转义(escape)。
  • 代码示例网站 (Code Example Sites):编程教程网站(programming tutorial sites) / 技术博客(tech blogs) / StackOverflow 回答中展示含有 angle brackets <> 的代码片段(code blocks) 防止被浏览器解析执行。
常见问题
Q: 编码后文本会变大吗?会影响性能吗?
A: ✅ 是的会膨胀(bloat/inflate size)。例如单个 < (1 byte ASCII) 会变成 &lt; (4 字符 = 4 bytes UTF-8),约 4x 体积增长(volumetric increase)。但这保证了 HTML 解析器(parser) 的正确性(correctness) 和安全性(security) —— 可读性(readability) 与安全性(security) 的合理权衡(acceptable tradeoff)
Q: 需要对所有字符都编码吗?还是只编码危险字符?
A: 只需编码 HTML 保留字符(reserved characters):五个核心字符 < (less-than) > (greater-than) & (ampersandand) " (double-quote) ' (single-quote)。中文字符(CJK - Chinese Japanese Korean ideographs) 取决于文档的 charset 声明(encoding declaration <meta charset="UTF-8">) 通常无需编码(remain as raw bytes)。
Q: JavaScript 中也需要这样编码吗?有更好的方案吗?
A: ⚠️ JS 中主要关注 闭合标签问题(close-tag issue):防止 </script> 提前终止 script 块(block)。推荐优先使用 .textContent() (自动转义) 而非 .innerHTML() (直接解析 HTML 存在 XSS 风险)。 最佳实践(best practice):始终使用 textContent 设置用户内容!
Q: 数字实体(decimal entity) 和命名实体(named entity) 哪种更好?
A: 各有优势(trade-offs): - 命名实体(named &name;):✅ 可读性极佳(human-readable) 一眼看出含义(meaning semantic clarity);❌ 覆盖范围有限(limited coverage ~200+ 个)。 - 数字实体(numeric &#NNN; / &#xHH;):✅ 覆盖全部 Unicode 字符(universal coverage all Unicode code points);❌ 可读性差(human-unfriendly) 难以直接识别含义。 - 推荐策略(recommended strategy):常用字符用命名(named),罕见/Unicode 字符用数字(numeric) 混合使用(mixed approach)!
工具名称 html实体转义
所属分类 Web
更新时间 2026-06-23
使用次数 43
工具简介 编码和解码HTML实体。
功能特性
双向转换 (Bidirectional Conversion):支持 HTML Entity Encoding (字符 → 实体 entity 引用) 和 Decoding (实体 → 原始字符) 两种操作方向(operation modes)。
三大全字符集覆盖 (Full Character Set Coverage)
批量处理 (Batch Processing):一次对整段文本块(text block / paragraph) 中的所有特殊字符进行统一编码或解码操作。
实时预览 (Live Preview WYSIWYG):转换结果即时显示(instant display) 所见即所得(what you see is what you get),无需手动触发按钮触发(trigger manually)。
编码对照表 (Encoding Reference Table):内置常用 HTML 命名实体(named entity) 速查快速参考(quick lookup reference table)。
XSS 防护增强 (XSS Prevention Enhancement):自动转义 <script> / onerror= / javascript: 等危险模式(dangerous patterns) 降低 DOM-based XSS 攻击向量。
暂无收藏工具
收藏工具