接触 URL 编码时总会遇到一串专业术语,这里挑最常见的几个一次性讲清楚。

百分号编码

URL 编码的正式名称,指用“百分号 + 两位十六进制”表示不安全字符,空格 %20、井号 %23 都出自这套规则。

UTF-8

字符集的编码方案。中文、表情符号等非 ASCII 字符需先转为 UTF-8 字节,再逐字节百分号编码,所以中文链接里是 %E4%BD%A0 这样的多段形式。

保留字符与非保留字符

保留字符(如 / ? & = #)在 URL 中有结构含义,作数据使用时必须编码;非保留字符(字母、数字、- _ . ~)任何时候都安全,无需编码。

查询字符串

问号后面的 key=value 部分,以 & 分隔多个参数,是最常被编码的区域。

encodeURI 与 encodeURIComponent

两种编码力度不同的函数:前者保留 URL 结构字符,适合处理整条链接;后者把所有保留字符都编码,适合处理单个参数值。

掌握这几个术语,读文档、排问题都会顺畅很多。