接触 URL 编码时总会遇到一串专业术语,这里挑最常见的几个一次性讲清楚。
百分号编码
URL 编码的正式名称,指用“百分号 + 两位十六进制”表示不安全字符,空格 %20、井号 %23 都出自这套规则。
UTF-8
字符集的编码方案。中文、表情符号等非 ASCII 字符需先转为 UTF-8 字节,再逐字节百分号编码,所以中文链接里是 %E4%BD%A0 这样的多段形式。
保留字符与非保留字符
保留字符(如 / ? & = #)在 URL 中有结构含义,作数据使用时必须编码;非保留字符(字母、数字、- _ . ~)任何时候都安全,无需编码。
查询字符串
问号后面的 key=value 部分,以 & 分隔多个参数,是最常被编码的区域。
encodeURI 与 encodeURIComponent
两种编码力度不同的函数:前者保留 URL 结构字符,适合处理整条链接;后者把所有保留字符都编码,适合处理单个参数值。
掌握这几个术语,读文档、排问题都会顺畅很多。