第 5 课
HTML Entity 调试流程
针对日志、导出数据与混合格式实体的逐步排查方法。
实体输出异常时,应从 存储的字节/字符 往外查,而不是只看浏览器碰巧渲染成什么样。
第 1 步:定位来源层
先问:
- 字段是存储时已转义、渲染时再转义,还是两者都有?
- 最后一层处理是 CMS、API 还是模板?
- 是导出一行有问题,还是整表都有问题?
第 2 步:解码查看字符
把字符串贴进解码器,检查:
&是否还原为单个&?- 同一值里是否混用命名与数字实体?
- 编码再解码是否与原文一致(round-trip)?
第 3 步:关注不可见空白
对比普通空格、Tab 与 。用把 nbsp 标为 ·、Tab 标为 → 的预览能大幅缩短 CMS 排查时间。
第 4 步:批量处理导出
对 CSV 或日志按 逐行 处理。无效实体应报出行号与具体 token(如 &bad;、&#xZZ;)。
第 5 步:在正确边界修复
- 双重编码:去掉一层转义,或在模板前解码
- 转义不足:在最终输出边界转义,而非每一步存储都转义
- 实体形式不对:与下游消费者统一编码选项
第 6 步:在目标环境验证
修复后在真实 HTML 或邮件环境查看。开发者工具里的 DOM 文本可能与数据库中的原始实体字符串不同。