URL 编解码

URL 结构解析

Query 参数拆解 (自动解码)

组件编码 vs 完整 URI:
· encodeURIComponent: 编码所有特殊字符,适合编码查询参数值
· encodeURI: 保留 URL 结构字符 (: / ? # 等),适合编码完整 URL

Query 参数 ↔ JSON 互转

抓包调试必备:将 URL 中的 Query 字符串(如 a=1&b=test)一键转为结构化 JSON,或将 JSON 对象转为 URL 编码后的 Query 字符串。

URL 编解码的常见使用场景

  • API 接口签名 (Signature):在对接微信、支付宝等第三方 API 时,通常需要将 Query 参数按字典序排序并拼接,此时必须使用标准的 URL 编码规则。
  • 前端路由传参:在 Vue/React 的 Hash 路由或 Query 传参中,如果参数包含 JSON 字符串或特殊符号,必须先进行 encodeURIComponent 编码,防止 URL 结构被破坏。
  • 抓包与日志分析:服务端日志或 Charles/Fiddler 抓包看到的 URL 通常是百分号编码的,使用本工具的“URL 解析”功能可一键将参数还原为明文,方便排查 Bug。

各编程语言 URL 编解码代码速查表

语言 编码 (Encode) 解码 (Decode)
JavaScript encodeURIComponent(str) decodeURIComponent(str)
Python urllib.parse.quote(str) urllib.parse.unquote(str)
Java URLEncoder.encode(str, "UTF-8") URLDecoder.decode(str, "UTF-8")
Go url.QueryEscape(str) url.QueryUnescape(str)
PHP urlencode($str) urldecode($str)

常见问题

URL 编解码工具安全吗?数据会上传服务器吗?

完全安全。所有 URL 编码和解码都在你的浏览器本地完成,输入的 URL 或文本不会上传到任何服务器,也不会被记录。

encodeURIComponent 和 encodeURI 有什么区别?

encodeURIComponent(组件编码)会编码几乎所有特殊字符(包括 : / ? # & 等),适合编码查询参数的值;encodeURI(完整 URI 编码)会保留 URL 结构字符,适合对整个 URL 进行编码而不破坏其结构。

空格在 URL 中应该被编码为 + 还是 %20?

在标准的 URL Path 中,空格应被编码为 %20。但在 Query 参数(application/x-www-form-urlencoded 规范)中,空格通常被编码为 +。本工具的 Query 转 JSON 功能兼容这两种格式的解析。

如何解析 URL 的各个组成部分?

在输入框中粘贴完整 URL,点击「解析 URL」按钮,工具会自动拆解出协议、主机名、端口、路径、查询参数和 Hash 等各个部分,并自动将 Query 参数拆解为可视化的 Key-Value 表格。