URL 解码
复制网址时常会变成一长串 %E5%8C%97%E4%BA%AC 这样的“乱码”,粘贴进来就会即时还原成中文。粘贴完整网址时,还会把域名、路径和每个参数分开列成表格,查看搜索关键词、推广追踪参数(utm)一目了然。旧网站常见的 GBK 编码也能解。要把中文转成网址格式,切换到上方的编码标签,或使用 URL 编码。解码完全在浏览器里进行,数据不会上传。
如何使用 URL 解码
- 把网址或
%XX字符串粘贴到输入框,下方立即显示解码结果, 例如%E5%8C%97%E4%BA%AC会变成“北京”。 - 粘贴的是完整网址(
https://开头)时,下方会多出“网址组成”:域名、路径、片段(#),以及每个参数的名称和值。 - 选项:“+ 当作空格”(默认勾选)适合搜索、表单提交的网址,如果网址里的
+是真正的加号就取消勾选;“多次解码(例如 %2520 → %20 → 空格)”处理被编码了两次以上(出现%25E5)的网址;解出来是乱码时可以改“字符编码”。 - 点击“复制”复制结果,或点击“转到编码”重新编码对比。
为什么网址会变成一串 %E5%8C%97
网址只能使用英文字母、数字和少数符号,所以中文、空格等字符会被转成 % 加两个十六进制数字的百分号编码。浏览器地址栏通常会把它显示成中文,但复制到微信、邮件或程序里时,就会变回原来的编码格式。中文用 UTF-8 编码时,一个字是 3 组 %XX。
URL 解码失败或还是乱码的原因
- % 后面不完整:
%后面一定要接两个十六进制数字(0~9、A~F),像100%、被截断的%E5,都会解码失败。本工具会指出是第几个字符出 错;如果%本来就是文字,原本应该写成%25。 - 字符编码不同:早期中文网站常用 GBK(GB2312),例如“北京”是
%B1%B1%BE%A9(每个字 2 组),用 UTF-8 解会失败或变乱码,把“字符编码”改成 GBK 就能还原。 - 被编码了两次:网址经过跳转、推广链接时可能被重复编码,
%本身变成%25,例如%25E5%258C%2597。勾选“多次解码(例如 %2520 → %20 → 空格)”即可。 - + 被当成空格:如果原本是加号(例如
C++),却被解成空格,请取消勾选“+ 当作空格”。
看懂网址参数
? 后面是查询参数,以 & 分隔,每个参数是“名称=值”。例如:
https://www.google.com/search?q=%E5%8C%97%E4%BA%AC&hl=zh-Hans&utm_source=newsletter
| 参数 | 含义 |
|---|---|
utm_source、utm_medium、utm_campaign | 推广追踪参数:流量来源、媒介、活动名称 |
fbclid、gclid | Facebook、Google Ads 点击追踪码 |
q、keyword、query | 搜索关键词 |
page、p | 页码 |
redirect、return_url | 登录或支付完成后要跳回的网址(值本身常是另一个编码过的网址) |
分享网址前,可以把 utm_、fbclid 这类追踪参数 删掉,网址会短很多。
各编程语言的 URL 解码写法
| 语言 | 一般解码(%XX) | 表单格式(+ 也转成空格) |
|---|---|---|
| JavaScript | decodeURIComponent(s) | new URLSearchParams(s).get('q') |
| Python | urllib.parse.unquote(s) | urllib.parse.unquote_plus(s) |
| Java | URLDecoder.decode(s.replace("+", "%2B"), UTF_8) | URLDecoder.decode(s, UTF_8) |
| C# | Uri.UnescapeDataString(s) | WebUtility.UrlDecode(s) |
| PHP | rawurldecode($s) | urldecode($s) |
| Go | url.PathUnescape(s) | url.QueryUnescape(s) |
JavaScript 的 decodeURIComponent() 遇到不完整的 % 会抛出 URIError,记得用 try…catch 处理;解 GBK 时 Python 可以用 unquote(s, encoding='gbk')。
常见问题
怎么把网址的 %E5%8C%97 转回中文?
把整段网址或 %XX 字符串粘贴进本工具就会即时转回中文,例如 %E5%8C%97%E4%BA%AC 会变成“北京”。完整网址还会把每个参数分开列出。
解码后还是乱码怎么办?
先试着把字符编码改成 GBK(旧中文网站);如果结果里还有 %25、%E5 这类编码,代表被编码了两次,勾选“多次解码”即可。
出现“% 不完整”的错误是什么意思?
URL 编码的 % 后面一定要接两个十六进制数字。字符串被截断,或 % 本来就是文字(例如 100%)却没有编码成 %25,都会出现这个错误,工具会标示出错的位置。
网址里的 + 要不要当成空格?
查询参数(? 后面)里的 + 通常代表空格,例如搜索网址;但路径中的 +,或原本就是加号的内容(例如 C++),就不该转成空格。本工具默认把 + 当空格,可以取消勾选。
我的数据会被上传吗?
不会。解码在你的浏览器里直接完成,网址和内容不会传到本网站或任何第三方服务器。