oLoveTools
URL 工具箱

URL 编码、解码与解析工具

用规范真正要求的配置来编码,展开被重复编码的跳转,把链接拆到凭据和真实主机名,手动编辑查询字符串,一键去掉所有跟踪参数。

8 种编码配置可编辑的查询字符串清理跟踪参数
按住 Alt 可预览反向结果

JavaScript 的做法:除 A-Z a-z 0-9 和 - _ . ! ~ * ' ( ) 之外全部转义。用于单个值够用,但子分隔符原封不动。

输入0 · 0 B
编码结果
0 · 0 B
结果会显示在这里…
继续处理

工作方式

1

链接进来

粘贴进来、打开装满链接的 .txt,或者让另一个 oLoveTools 工具把结果直接递过来。在你开口之前什么都不会处理。

2

被拆开

协议、凭据、真实主机名、端口、路径片段以及每一个参数,原始形态和解码形态并排呈现。

3

由你来改

重命名一个键、给查询字符串排序、展开重复编码的跳转,或者一次丢掉所有跟踪参数。Ctrl+Z 都能撤销。

4

干干净净地离开

复制它,把批量结果导出成 CSV 或 JSON,或者不经过下载文件夹直接送去另一个工具。

八种编码配置

encodeURIComponent 和 encodeURI 只是其中两个答案。RFC 3986 严格、form-urlencoded、路径、查询、片段和 RFC 5987 也都在这里,每一种都注明了什么时候该用它。

可以动手改的查询字符串

重命名键、修改值、调整行序、删掉多余项。你从未碰过的参数会逐字节写回 —— 连 + 和 %20 的差别都保得住。

一键清掉跟踪参数

utm_*、fbclid、gclid、msclkid、mc_eid 等数十种,按来源分组,并给出这次清理究竟省下了多少字节。

它会告诉你哪里不对

明文凭据、用形似字母拼写的主机名、其实是另一个 URL 的参数、被套了两层的转义 —— 在你点击之前就全部标出来。

重复编码,一次展开

跳转链常常被编码两三层。「反复解码直到不再变化」一次性展开,并告诉你用了几轮。

整份列表一起处理

丢进一个装着链接的文本文件,一趟全部清理干净,然后连同每条 URL 的节省量一起导出成 CSV 或 JSON。

url 编码

该用哪种转义,取决于这个值最后落在哪里

同一个值放进路径片段、查询字符串、表单正文和 Content-Disposition 首部,需要四种不同的转义,而 JavaScript 只提供了其中两种。URLBolt 把八种都给你,说明每一种会放过哪些字符,并在你粘贴出去之前先验证:对结果解码能否原样还原你的输入。

RFC 3986 严格转义
用 + 的表单编码
往返一致性校验
逐字节编辑

没有任何内容离开你的浏览器

所有操作 —— 编码、解码、解析、punycode 转换、清除跟踪参数、批量清理 —— 都在你自己的标签页里通过浏览器原生 API 完成。没有上传,没有请求,没有服务器环节,也没有任何可被记录的东西。你要检查的链接,往往正是你最不想发给陌生服务器的那些,所以它们哪儿也不去。

为那些送到手上就是坏的链接而做

url 解码

跳转三次的联盟链接、挂着十几个跟踪参数的推广链接、被百分号编码了两次的 API 回调、把密码留在授权部分的老接口、终端里只显示成 xn-- 的国际化域名。URLBolt 全都读得懂:它把 punycode 主机名还原成人能读的样子,展开层层嵌套的跳转,让你直接动手修查询字符串,而不必在文本编辑器里重拼整条地址。

无需账号,没有额度,无需上传

没有注册,没有每日限额,也没有把好用的那一半藏起来的付费档。你打开的文件只在本地读取,从不外传;标签页一关,一切都被忘掉。

常见问题

QencodeURIComponent 和 encodeURI 有什么区别?+

encodeURI 会转义整个地址,但保留构成 URL 语法的字符 —— : / ? & = + $ , # —— 所以结果仍是一个能用的 URL。encodeURIComponent 连这些也一并转义,正适合单个参数的值。两者都不会转义 ! ' ( ) *,所以如果你要给请求签名,多半应该改用「RFC 3986 严格」这一档。

Q为什么解码后的文本里还留着一个 %?+

因为输入里有一处坏掉的转义 —— % 后面不足两位十六进制数字,或者跟着的两个字符根本不是十六进制。URLBolt 不会因此丢掉整段字符串,而是保留那个字面的 %,把其余部分照常解码,并列出每处问题的准确位置,让你看清链接是在哪里被截断的。

Q什么时候空格该写成 + 而不是 %20?+

在 application/x-www-form-urlencoded 的正文或查询字符串里 —— 也就是 HTML 表单发送的那种格式 —— 空格是 +。其他任何地方,包括路径片段,都是 %20。把这两者弄反是最常见的 URL 错误,所以两个方向都各有一个开关,编码器也会标明当前用的是哪一种。

Q去掉跟踪参数会把链接弄坏吗?+

几乎不会。utm_*、fbclid、gclid 这一类是给分析工具读的,页面本身并不使用,所以去掉之后目的地完全相同。那些有时是真参数的键 —— ref、source、s —— 默认保留,只有勾选更激进的选项才会被移除。

Q主机名下面那行 punycode 是什么意思?+

浏览器在发送之前,会把国际化域名转换成以 xn-- 开头的 ASCII 形式。URLBolt 把这种形式还原成可读的样子,并在某一段标签混用了多种文字时提醒你 —— 仿冒域名里用西里尔字母 а 冒充拉丁字母 a,靠的就是这一手。

Q会有内容被发送到服务器吗?+

不会。编码、解码、解析、punycode 转换和批量清理都是在你标签页中运行的浏览器原生 API。任何时候都不会发出网络请求,所以页面加载完成之后,这个工具离线也能用。

相关搜索

url 编码url 解码url 解析百分号编码查询字符串编辑器去掉 utm 参数punycode 解码重复编码的 urlrfc 3986 编码清理跟踪链接
oLoveTools 工具集的一员
oLoveTools

编码、解码、剖析并清理 URL —— 八种转义配置、可编辑的查询字符串、一键清除跟踪参数,全部在浏览器中完成。

© 2026 oLoveTools关于

下一步

用 Base64 编码 Base64Bolt

URLBolt | URL 编码、解码与解析工具

用八种字符集配置编码和解码 URL,拆开任意链接,手动编辑查询字符串,去掉跟踪参数,一次清理整份列表。免费,全部在浏览器中完成。

常见问题

encodeURIComponent 和 encodeURI 有什么区别?

encodeURI 会转义整个地址,但保留构成 URL 语法的字符 —— : / ? & = + $ , # —— 所以结果仍是一个能用的 URL。encodeURIComponent 连这些也一并转义,正适合单个参数的值。两者都不会转义 ! ' ( ) *,所以如果你要给请求签名,多半应该改用「RFC 3986 严格」这一档。

为什么解码后的文本里还留着一个 %?

因为输入里有一处坏掉的转义 —— % 后面不足两位十六进制数字,或者跟着的两个字符根本不是十六进制。URLBolt 不会因此丢掉整段字符串,而是保留那个字面的 %,把其余部分照常解码,并列出每处问题的准确位置,让你看清链接是在哪里被截断的。

什么时候空格该写成 + 而不是 %20?

在 application/x-www-form-urlencoded 的正文或查询字符串里 —— 也就是 HTML 表单发送的那种格式 —— 空格是 +。其他任何地方,包括路径片段,都是 %20。把这两者弄反是最常见的 URL 错误,所以两个方向都各有一个开关,编码器也会标明当前用的是哪一种。

去掉跟踪参数会把链接弄坏吗?

几乎不会。utm_*、fbclid、gclid 这一类是给分析工具读的,页面本身并不使用,所以去掉之后目的地完全相同。那些有时是真参数的键 —— ref、source、s —— 默认保留,只有勾选更激进的选项才会被移除。

主机名下面那行 punycode 是什么意思?

浏览器在发送之前,会把国际化域名转换成以 xn-- 开头的 ASCII 形式。URLBolt 把这种形式还原成可读的样子,并在某一段标签混用了多种文字时提醒你 —— 仿冒域名里用西里尔字母 а 冒充拉丁字母 a,靠的就是这一手。

会有内容被发送到服务器吗?

不会。编码、解码、解析、punycode 转换和批量清理都是在你标签页中运行的浏览器原生 API。任何时候都不会发出网络请求,所以页面加载完成之后,这个工具离线也能用。

相关搜索

url 编码, url 解码, url 解析, 百分号编码, 查询字符串编辑器, 去掉 utm 参数, punycode 解码, 重复编码的 url, rfc 3986 编码, 清理跟踪链接