什么时候需要 URL 编码
网址里只能直接出现一部分 ASCII 字符。中文、空格,以及 & ? # =
这类有特殊含义的符号,如果原样放进网址,会被浏览器或服务器截断、误解析。先把它们转成 %xx
形式,就能安全地放进网址、表单提交或接口参数里。
encodeURIComponent 和 encodeURI 的区别
本工具用的是 encodeURIComponent,它会转义除 A–Z a–z 0–9 - _ . ! ~ * ' ( )
以外的所有字符,包括 : / ? & = 等结构符号。所以它适合单独编码
一个参数的值,例如把 关键词=优速网 拼进 query 之前先编码它。
如果要编码整条网址并保留 :// ? & = 这些结构,应该用 encodeURI,
它会保留这些分隔符。把两者用反,是 URL 拼接出问题最常见的原因。