URL 编码解码工具

在线编码解码 URL 与查询参数,并自动拆解出 URL 携带的全部参数。全部在浏览器内运行,数据不上传。

所有处理均在你的浏览器内完成,数据不会上传。

参数值模式转义所有字符;整条 URL 模式保留 : / ? # & = 这些结构字符

使用方法

  1. 选择编码解码
  2. 选择参数值(处理单个值)或整条 URL(处理完整地址)。
  3. 粘贴文本,结果随输入实时更新。
  4. 如果输入里含查询串,下方会列出解码后的全部参数。

那张参数表大概是你用得最多的部分:粘一条又长又乱的接口 URL 进来,直接看清它到底带了什么,不用再手动数 & 符号。

关于百分号编码

URL 里只允许出现有限的一批 ASCII 字符。其余的一切——空格、中文、emoji,以及那些赋予 URL 结构的保留标点——都必须写成 % 加上每个字节的两位十六进制。这就是 你好 会变成 %E4%BD%A0%E5%A5%BD 的原因:UTF-8 六个字节,六段转义。

真正让人栽跟头的是该转义什么,而这完全取决于文本要放在哪里。在参数值内部,& 必须转义,否则会被读成下一个参数的开始;而在整条 URL 的层面,同一个 & 恰恰是你要保留的 分隔符。这件事没有唯一正确答案,只有针对位置的正确选择——所以本工具要求你自己选。

另外要清楚:编码不是加密,也不是混淆。百分号编码的串一眼就能还原,凡是放进 URL 的内容 都该当作公开信息——URL 会进浏览器历史、服务器访问日志,还会通过 Referer 头发给第三方。

常见问题

两种模式有什么区别?

参数值模式转义所有保留字符,包括 : / ? # & =,适合把单个值放进查询串。整条 URL 模式会保留这些结构字符,让完整地址原样可用。用错模式是链接失效最常见的原因——把整条 URL 用参数值模式编码,:// 会变成 %3A%2F%2F。

为什么解码出来是乱码?

百分号编码承载的是字节而不是字符。如果原文当初不是按 UTF-8 编码的(老系统有时用 GBK 或 Latin-1),再按 UTF-8 解码就会出乱码。本工具一律按 UTF-8 解码,这是现代系统的通行标准。

为什么解码报错了?

百分号后面必须跟两位十六进制数字。像 100% 或 %ZZ 这样的串不是合法的百分号编码,浏览器不会去猜。字面的百分号本身应该编码成 %25。

空格编码成 %20 还是 +?

本工具一律输出 %20,它在 URL 的任何位置都正确。+ 号这个惯例只适用于查询串内部,源自 HTML 表单提交。但在拆解查询参数时,本工具会把 + 解释成空格——因为服务端就是这么做的。

我的数据会被发送出去吗?

不会。全部在浏览器内运行。这一点在这里格外重要,因为 URL 里经常带着 API 密钥、会话令牌之类的凭据。