跳到主要内容

URL 解码

​

扫描结果

复制网址时常会变成一长串 %E5%8C%97%E4%BA%AC 这样的“乱码”,粘贴进来就会即时还原成中文。粘贴完整网址时,还会把域名、路径和每个参数分开列成表格,查看搜索关键词、推广追踪参数(utm)一目了然。旧网站常见的 GBK 编码也能解。要把中文转成网址格式,切换到上方的编码标签,或使用 URL 编码。解码完全在浏览器里进行,数据不会上传。


如何使用 URL 解码​

  1. 把网址或 %XX 字符串粘贴到输入框,下方立即显示解码结果,例如 %E5%8C%97%E4%BA%AC 会变成“北京”。
  2. 粘贴的是完整网址(https:// 开头)时,下方会多出“网址组成”:域名、路径、片段(#),以及每个参数的名称和值。
  3. 选项:“+ 当作空格”(默认勾选)适合搜索、表单提交的网址,如果网址里的 + 是真正的加号就取消勾选;“多次解码(例如 %2520 → %20 → 空格)”处理被编码了两次以上(出现 %25E5)的网址;解出来是乱码时可以改“字符编码”。
  4. 点击“复制”复制结果,或点击“转到编码”重新编码对比。

为什么网址会变成一串 %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、gclidFacebook、Google Ads 点击追踪码
q、keyword、query搜索关键词
page、p页码
redirect、return_url登录或支付完成后要跳回的网址(值本身常是另一个编码过的网址)

分享网址前,可以把 utm_、fbclid 这类追踪参数删掉,网址会短很多。

各编程语言的 URL 解码写法​

语言一般解码(%XX)表单格式(+ 也转成空格)
JavaScriptdecodeURIComponent(s)new URLSearchParams(s).get('q')
Pythonurllib.parse.unquote(s)urllib.parse.unquote_plus(s)
JavaURLDecoder.decode(s.replace("+", "%2B"), UTF_8)URLDecoder.decode(s, UTF_8)
C#Uri.UnescapeDataString(s)WebUtility.UrlDecode(s)
PHPrawurldecode($s)urldecode($s)
Gourl.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++),就不该转成空格。本工具默认把 + 当空格,可以取消勾选。

我的数据会被上传吗?​

不会。解码在你的浏览器里直接完成,网址和内容不会传到本网站或任何第三方服务器。

其他实用工具