支柱内容
编码与解码工作流指南
搞清楚 Base64、URL 编码、HTML 实体和 Unicode 转义分别该在什么场景用,以及它们各自解决什么问题。
编码从来不是一件事,而是一组按上下文区分的转换动作,用来让内容适合传输、嵌入、展示或存储。把这些上下文混在一起,是最容易造成 URL 失效、文本乱码或转义内容直接漏到界面上的原因之一。
先看边界,再选编码方式
当内容要进入查询参数或路径片段时,用 URL 编码;当用户可见文本要插进 HTML 标记里时,用 HTML 实体保护尖括号等字符;当字符串要穿过源码或序列化文本边界时,用 Unicode 转义;当二进制或普通文本需要一个“文本安全外壳”时,再使用 Base64。
最常见的失败模式
最经典的错误是重复编码:一个已经 URL 转义过的值又被转义一遍,下游拿到的就是垃圾内容。另一个常见误解是把 Base64 当成加密。它只是可逆编码,不能用来隐藏敏感信息。团队还经常忽略 Base64 会让体积大约膨胀三分之一,这对内联大资源尤其关键。
- 编码应尽量靠近输出边界,而不是越早越好。
- 保留一份原始字符串做调试基准,方便定位内容从哪里开始被污染。
- 只要没有单独加密,任何被编码的密钥都应被视为已暴露。
一套适合浏览器调试的例行流程
在相信结果之前,先把样本反解码回可读形式;把编码前后的值并排对照;如果文本最终要进入 HTML 或 URL,不要因为“能解回来”就默认它适用于所有上下文,而是要按真实目标场景再验证一遍。
相关阅读
指南与工作流
相关工具
工具库