URL 为什么需要编码

百分号编码是什么以及何时需要

URL 的保留字符

/ 分隔路径,? 开始查询,= 分隔键值,& 分隔参数。数据中出现这些字符时可能被误解为 URL 结构。

百分号编码

将特殊字符替换为 % 加两位十六进制代码。

salt & pepper → salt%20%26%20pepper

空格变为 %20& 变为 %26= 变为 %3D

哪些字符需要编码?

RFC 3986 的非保留字符(字母、数字及 - _ . ~)始终安全。空格、保留字符以及 é、中文等非 ASCII 字符作为数据时必须编码。

encodeURI 与 encodeURIComponent

  • encodeURI(): 编码完整 URL 并保留结构字符
  • encodeURIComponent(): 编码单个参数值,也会转换 ?&=

Votilo Tools 使用适合查询参数值的 encodeURIComponent