URL 编码 / 解码
编码解码 URL,并把查询参数一键拆成键值表格
编码 / 解码
查询参数解析 粘贴完整链接或 ?a=1&b=2 片段
URL 编码到底该用哪个函数
URL 中不能直接出现空格、中文以及 &、=、? 等具有语法含义的字符,必须按百分号编码(Percent-Encoding)转义。JavaScript 提供了两个函数,用途完全不同:
- encodeURIComponent:几乎转义所有特殊字符,只保留
A-Z a-z 0-9 - _ . ! ~ * ' ( )。适合对参数值编码,例如encodeURIComponent('a&b')得到a%26b,否则&会被当成参数分隔符。 - encodeURI:保留
: / ? # & = + $ ,等 URL 结构字符,只处理空格、中文等非法字符。适合对整条 URL编码。 - 解码时对应的
decodeURIComponent/decodeURI要成对使用,用错会导致%26之类的串没有被还原。
常见错误
- 对参数值用了 encodeURI:值里的
&和=不会被转义,服务端会把一个参数拆成多个。 - 对整条 URL 用了 encodeURIComponent:
://和/被转义,链接直接失效。 - 空格编码成
+:这是 application/x-www-form-urlencoded 表单的规则,标准 URL 编码应当用%20,两者在部分服务端不通用。 - 二次编码:
%2520表示原文本就是%20,排查时注意逐层解码。
常见问题
为什么解码后还是乱码?
多半是原始编码不是 UTF-8(例如 GBK 编码的老系统)。本工具按 UTF-8 解码,遇到解码异常会提示。
参数解析支持重复键吗?
支持。像 ?a=1&a=2 会原样列出两行,不会被合并或覆盖。
链接会被上传吗?
不会。所有解析都在浏览器本地完成。敏感参数(token、签名)也安全。