读取粘贴文本中的 HTML 实体
把 & < ' 等实体还原为真实字符——并知道何时不该解码。
- 1 HTML 实体解码器 →
粘贴含实体的文本(& < > " ' ' 及数字形式)。输出将每个实体替换为实际字符,包括非 ASCII 码点。
- 2
了解你的实体:命名实体覆盖 XML/HTML 特殊字符外加一大类目录(© — );数字形式分十进制 (') 与十六进制 ('),始终映射到 Unicode 码点。若输出在应有文本处出现杂散字符,说明源被双重编码——&lt; 第一遍解码为 <;仅在确认目标数据后再跑一遍。
- 3
何时不该解码: destined 用于 HTML 输出的文本应保持编码状态——解码用户提交内容再未转义渲染是典型的 XSS 注入路径。为阅读和分析而解码;为存储和显示而保留编码。
常见问题
- ' 和 ' 有什么区别?
- 二者都表示撇号。' 在 XML 和 HTML5 中合法,但 HTML 4 不含;'(数字形式)到处可用,因此许多编码器输出数字形式。
- 为什么我的文本含 &lt; 而非 <?
- 双重编码:字符串被 HTML 转义了两次(模板对已转义数据再次转义时常见)。解码两次恢复原文,然后在源头修复转义。