URL 解码 / 编码

URL 解码在线工具(含 GBK 中文乱码修复)

粘贴网址或 %E4%BD%A0%E5%A5%BD 这样的百分号编码,立刻还原成可读的中文;切换到编码可以把中文和特殊字符转成能放进链接的形式。完整网址还会被拆成主机名、路径和逐个解码的查询参数。老网站常见的 GBK 编码会被自动识别,所有处理都在浏览器里完成。

方向
  • 解码结果

    https://www.example.cn/search?q=北京烤鸭&city=北京 朝阳&next=/menu?page=2#pinglun

解码的百分号编码数27
编码层数1
加号按空格处理
协议https:
主机名www.example.cn
路径/search
片段(# 后面)pinglun

查询参数按浏览器的规则读取:+ 表示空格。

查询参数(已解码)
#参数名值
1q北京烤鸭
2city北京 朝阳
3next/menu?page=2

全部在你的设备上计算 · 公式已用已知数值验证 · 了解我们如何验证

URL 解码和编码怎么用

  1. 解码:粘贴网址或任意百分号编码文本,例如 %E5%8C%97%E4%BA%AC,马上就能看到“北京”。
  2. 完整网址还会被拆开:协议、主机名(中文域名同时显示 Unicode 形式)、路径、片段,以及逐个解码的查询参数表。
  3. “把 + 当作空格”对查询字符串和表单数据保持勾选,因为那里的 + 代表空格;其他文本里 + 就是加号,可以取消勾选。
  4. 编码:选择编码,输入文本,再选编码方式:网址的一部分(给查询参数值用,最常用)、整个网址、表单数据或严格 RFC 3986。
  5. 点击结果旁的复制。格式不对的 % 会指出它在第几个字符。

百分号编码的原理

网址里只能出现一小部分 ASCII 字符,其中有些还有特殊用途:/ 分隔路径,? 开始查询字符串,& 和 = 分隔参数,# 开始片段。其他字符——包括所有汉字——以及当作普通数据使用的这些符号,都要写成百分号加两位十六进制数,表示一个字节。这就是 RFC 3986 定义的百分号编码,也叫 URL 编码。

空格是字节 32,十六进制 20,所以写成 %20。非 ASCII 字符先转换成 UTF-8 字节,再给每个字节一个编码:常用汉字在 UTF-8 里占 3 个字节,所以“中”变成 %E4%B8%AD,“你好”变成 %E4%BD%A0%E5%A5%BD;大多数 emoji 占 4 个字节。解码就是反过来:每个编码变回一个字节,再把这些字节按 UTF-8 读成文字。字母、数字和 - . _ ~ 永远不需要编码,十六进制字母大小写都可以。

GBK 编码的网址和中文乱码

不是所有中文网址都用 UTF-8。一些老网站、老系统和部分搜索引擎链接用 GB2312/GBK 编码汉字:每个汉字 2 个字节,而不是 UTF-8 的 3 个。比如“你好”在 UTF-8 里是 %E4%BD%A0%E5%A5%BD(6 个编码),在 GBK 里是 %C4%E3%BA%C3(4 个编码)。很多在线 URL 解码工具只会按 UTF-8 解码,遇到 GBK 就输出一串 �� 或乱码。

本工具先按 UTF-8 解码;如果这些字节不是合法的 UTF-8,就自动改用 GBK/GB18030 再试一次,并在结果里注明所用的字符集。所以:

链接里如果带有 ie=gbk、charset=gb2312 这类参数,基本可以确定是 GBK 编码,请以“解码结果”一栏为准。反过来的情况也很常见:UTF-8 的文字被当成 GBK 显示,“北京烤鸭”就会变成“鍖椾含鐑ら腑”这样的乱码。遇到这种乱码,回到原始的百分号编码重新解码,就能得到正确的中文。GB18030 是 GBK 的超集,是国家强制标准,这里的 GBK 解码同时覆盖两者。

encodeURIComponent、encodeURI 还是表单编码?

四种编码方式的区别在于哪些字符保持原样:

字符网址的一部分(encodeURIComponent)整个网址(encodeURI)表单数据严格 RFC 3986
半角空格%20%20+%20
 全角空格%E3%80%80%E3%80%80%E3%80%80%E3%80%80
中汉字%E4%B8%AD%E4%B8%AD%E4%B8%AD%E4%B8%AD
,全角逗号%EF%BC%8C%EF%BC%8C%EF%BC%8C%EF%BC%8C
#井号%23#%23%23
%百分号%25%25%25%25
&和号%26&%26%26
+加号%2B+%2B%2B
/斜杠%2F/%2F%2F
=等号%3D=%3D%3D
?问号%3F?%3F%3F
~波浪号~~%7E~
😀emoji%F0%9F%98%80%F0%9F%98%80%F0%9F%98%80%F0%9F%98%80

注意全角字符:全角空格“ ”和全角逗号“,”都是普通的非 ASCII 字符,会被编码成三个字节,而不是 %20 或 %2C。接口参数对不上时,先检查是不是混进了全角符号。

+ 还是 %20?

两者都可能表示空格,但只在查询字符串里成立。表单编码把空格写成 +,所以搜索链接常常是 ?q=red+shoes;RFC 3986 把空格写成 %20,在路径里 + 就是加号。查询参数值里真正的加号必须写成 %2B:C%2B%2B 解码为“C++”,而 C++ 在勾选“把 + 当作空格”时会变成 C 加两个空格。

双重编码

已经编码过的文本再编码一次,每个 % 都会变成 %25:“你”先变成 %E4%BD%A0,再变成 %25E4%25BD%25A0。链接经过两个系统、各自编码一次时就会这样,常见于跳转链接、短链和统计参数。解码器会在还有百分号编码时继续解码,并显示一共有几层:%25E4%25BD%25A0%25E5%25A5%25BD 有 2 层,最终得到“你好”。取消勾选该选项,可以一次只解一层。

计算示例

输入框里的示例是一个搜索链接:https://www.example.cn/search?q=%E5%8C%97%E4%BA%AC%E7%83%A4%E9%B8%AD&city=%E5%8C%97%E4%BA%AC+%E6%9C%9D%E9%98%B3&next=%2Fmenu%3Fpage%3D2#pinglun。里面有 27 个百分号编码,只有一层。解码后是:

https://www.example.cn/search?q=北京烤鸭&city=北京 朝阳&next=/menu?page=2#pinglun

主机名是 www.example.cn,路径是 /search。查询参数表列出 3 个参数:q =“北京烤鸭”,city =“北京 朝阳”,next =“/menu?page=2”。“北京烤鸭”四个字占 12 个编码,每个汉字 3 个字节;city 里的 + 变成了空格。最后一个参数本身是带查询的路径,所以它的 /、?、= 都被编码了:如果不编码,那个 = 会让参数提前结束。片段 #pinglun 不会发送给服务器。

中文域名

中文域名在网络上传输时使用一种叫 Punycode(RFC 3492)的 ASCII 形式,以 xn-- 开头。例如 中国.cn 写作 xn--fiqs8s.cn。粘贴任意一种形式,拆解结果都会同时显示浏览器实际发送的主机名和 Unicode 形式。Punycode 不是百分号编码,域名里永远不会出现 % 编码。

常见错误

小技巧与限制

解码和编码都在你的浏览器里完成:粘贴的内容不会上传,也不会保存,刷新页面就会清空。链接里经常带有登录令牌或个人信息,这一点很重要。

常见问题

URL 里的 %E4%BD%A0 是什么意思?

这是汉字“你”的 UTF-8 编码:E4、BD、A0 三个字节,每个字节前面加一个 %。把整个网址粘贴到这里,就能把所有编码还原成中文。

为什么有的 URL 解码后是乱码?

最常见的原因是链接用 GBK(GB2312)编码,而解码工具按 UTF-8 读取。本工具会在 UTF-8 不合法时自动改用 GBK/GB18030,并注明所用的字符集。如果原文就是被错误转码过的文字,需要找到最初的编码才能还原。

为什么网址里会出现 %2520?

它被编码了两次。第一次空格变成 %20,第二次 % 本身变成 %25。解码器会识别并逐层还原。

encodeURI 和 encodeURIComponent 有什么区别?

encodeURI 用来编码完整网址,保留 / ? & = # 这些构成网址结构的字符;encodeURIComponent 用来编码网址的一部分——一个参数值或一段路径——会把这些字符也编码,避免它们破坏外面的网址。

网址里的 + 是空格吗?

在表单数据的查询字符串里是:?q=red+shoes 表示“red shoes”。在其他地方和 RFC 3986 编码里,+ 就是加号,空格写成 %20。查询参数里要传加号,请写成 %2B。

我粘贴的网址会被上传吗?

不会。页面用浏览器里的 JavaScript 完成解码和编码,不向服务器发送任何内容,也不保存你粘贴的内容。

把这个计算器嵌入你的网站

可免费用于你的网站或博客。把下面的代码粘贴到想显示计算器的位置即可。

最后更新:2026年10月16日

菜单

分类

理财与贷款计算器15款计算器商业与购物计算器5款计算器健康与减重计算器6款计算器数学与学习计算器7款计算器日期与时间计算器5款计算器节日与重要日子倒计时8款计算器生活实用工具7款计算器程序员在线开发工具9款计算器

CalcWorthy

关于我们联系我们隐私政策使用条款

语言

语言
简体中文Simplified ChineseEnglishEnglishالعربيةArabicবাংলাBanglaDeutschGermanEspañolSpanishفارسیPersianFrançaisFrenchעבריתHebrewहिन्दीHindiBahasa IndonesiaIndonesianItalianoItalian日本語Japanese한국어KoreanBahasa MelayuMalayNederlandsDutchPolskiPolishPortuguêsPortugueseРусскийRussianไทยThaiTürkçeTurkishУкраїнськаUkrainianاردوUrduTiếng ViệtVietnamese