TapCub 正式上线:统计、分析、客服一个平台免费用

免费工具 URL 解码 / 编码在线工具

分享出去的链接里一长串 %E6%98%A5%E5%AD%A3,日志里的中文参数全是乱码?贴进来就能还原成汉字。反过来,要把中文活动名、带 & 的参数放进链接,先在这里编码。

  • 中文网址转码
  • 边输边转换
  • 本地处理
编解码工具

URL 解码或编码

示例是一条带中文搜索词和活动名的链接。切换模式对比结果,或者贴上你自己的内容。

整个输入框一起处理,换行也算在内。

结果
https://example.com/search?q=春季 促销&utm_campaign=双11

编码时空格写成 %20;中文等非 ASCII 字符按 UTF-8 字节编码。

全部在你的浏览器里计算。这里输入的任何内容都不会上传,TapCub 也不会保存。

分享这组输入:数值写在链接的 # 后面,不会发到服务器。

版本 v1.0更新于 更新记录

结果怎么读

选哪种模式,结果怎么看

两种编码模式的区别只在于哪些符号保留不动。选错模式,是网址出问题最常见的原因。

编码参数值

用 encodeURIComponent。除了字母、数字和 - _ . ! ~ * ' ( ),其它全部编码,包括 &、=、?、/、#。要放在 = 后面的单个值(活动名、搜索词、跳转地址)都用它。

编码整条网址

用 encodeURI。保留构成网址结构的符号(: / ? & = # 等),只编码空格、中文这类字符。适合把一整条含中文路径的链接变成能直接发出去的形式,不适合编码单个参数值。

解码

把每个 %XX 还原成字符。勾选「把 + 当空格」时先把 + 换成空格,这是表单提交的编码方式;真正的加号会编码成 %2B,照样解出 +。

%XX 怎么读

每个 %XX 是一个字节的十六进制。英文字母和符号占 1 个字节(空格是 %20),一个汉字按 UTF-8 占 3 个字节,所以「中」是 %E4%B8%AD,九个字符;大多数 emoji 占 4 个字节。

整条网址解码只用来看内容。不要把解码后的网址再当链接用:参数值里原本编码过的 &、= 解码后变成了真正的分隔符,链接的意思就变了。

怎么用

三步用完

放进链接之前编码,要看懂链接时解码。

  1. 1

    选模式

    = 后面的值选「编码参数值」;整条带中文的链接选「编码整条网址」;满是 % 的字符串选「解码」。

  2. 2

    粘贴内容

    结果随输入实时更新。解码时「把 + 当空格」一般保持勾选,除非内容里有必须保留的加号。

  3. 3

    复制并核对

    从代码块复制结果。想确认编码没问题,切到「解码」再贴回去,应该得到原文。

编码规则

两种模式各编码哪些字符

网址里只能出现有限的 ASCII 字符(RFC 3986)。其它字符先转成 UTF-8 字节,每个字节写成「% + 两位十六进制」,所以 URL 编码也叫百分号编码。

  • 每个参数值单独编码,再用 & 和 = 拼起来
  • 浏览器地址栏显示的是解码后的中文,实际发出去的是编码后的形式
  • 十六进制不分大小写:%2f 和 %2F 解码结果相同
encodeURIComponent 与 encodeURI 对各类字符的处理
字符编码参数值(encodeURIComponent)编码整条网址(encodeURI)
字母、数字、- _ . ! ~ * ' ( )不变不变
空格%20%20
& = ? /%26 %3D %3F %2F不变
: # + @%3A %23 %2B %40不变
%%25%25
中%E4%B8%AD%E4%B8%AD
双11%E5%8F%8C11%E5%8F%8C11
算例

四个常见场景

中文活动名、中文路径、编码两次、GBK 老链接,分别会得到什么结果。

不同输入和模式下的 URL 编码与解码结果
输入模式结果说明
双11 大促编码参数值%E5%8F%8C11%20%E5%A4%A7%E4%BF%83正确:放进 utm_campaign= 后面完整传过去
https://example.com/活动/双11?来源=公众号编码整条网址https://example.com/%E6%B4%BB%E5%8A%A8/%E5%8F%8C11?%E6%9D%A5%E6%BA%90=%E5%85%AC%E4%BC%97%E5%8F%B7/ ? = 保留,链接结构不变,可以直接用
%25E4%25B8%25AD解码%E4%B8%AD被编码了两次,再解码一次才得到「中」
%D6%D0%CE%C4解码报错这是 GBK 编码的「中文」,本工具按 UTF-8 解码

GBK 编码的链接多见于早期的中文网站和部分老系统(一个汉字 2 个字节,如「中」是 %D6%D0)。现在的网页、接口和浏览器基本都用 UTF-8(一个汉字 3 个字节)。

常见错误

URL 编码常在哪出错

下面这些情况,链接都能打开,但带过去的数据是错的。

参数值用了整条网址编码

encodeURI 不编码 &、=、#,参数值里有这些符号时,查询串会被拆开或截断。

整条链接当参数值编码

「编码参数值」会把 https:// 变成 https%3A%2F%2F。放在跳转参数里是对的,单独当链接用就打不开了。

重复编码

对已经编码过的字符串再编码一次,每个 % 都会变成 %25。看到 %25 后面跟两位十六进制,就再解码一次。

+ 和 %20 混用

表单和 PHP 的 urlencode、Java 的 URLEncoder 把空格编成 +,JS 编成 %20。真正的加号要写成 %2B,否则按表单规则解析时会变成空格。

常见问题

URL 解码 / 编码常见问题

还有其他问题?

直接和 TapCub 团队聊聊——工作日通常几小时内回复。

URL 编码是什么?

也叫百分号编码:网址里不允许出现、或者有特殊含义的字符,换成「% + 两位十六进制」。空格变成 %20,& 变成 %26,中文先转成 UTF-8 字节再逐个编码,所以一个汉字变成 9 个字符。

网址里的中文乱码怎么还原?

把那串 %E4%B8%AD%E6%96%87 这样的内容贴进来、模式选「解码」,就会显示成「中文」。如果报错,可能是链接被截断了一半,或者是 GBK 编码的老链接,这个工具只按 UTF-8 解码。

encodeURIComponent 和 encodeURI 有什么区别?

encodeURIComponent 会编码网址里所有有特殊含义的符号,适合编码单个参数值;encodeURI 保留 : / ? & = #,让整条网址仍然可用,所以不能拿来编码参数值。拿不准时,每个值用 encodeURIComponent 编码,再拼成网址。

空格应该编码成 %20 还是 +?

都常见。%20 在网址任何位置都成立;+ 只在按表单方式(application/x-www-form-urlencoded)编码的查询串里表示空格。这个工具编码时用 %20,解码时两种都能处理。

PHP 的 urlencode 和 rawurlencode 有什么区别?

主要差在空格:urlencode 按表单规则把空格编成 +,rawurlencode 编成 %20,后者和这里的「编码参数值」更接近。Java 的 URLEncoder.encode 也是表单规则;Python 里对应 quote_plus 和 quote。

UTM 参数里的中文要不要编码?

要。值里有中文、空格、& 或 # 都应该编码。UTM 链接生成器会自动编码每个值;更省事的做法是活动名用英文小写加下划线,比如 double11_sale,就不用操心编码。

贴进来的内容会上传吗?

不会。编码和解码都在你的浏览器里完成,不会发给 TapCub。分享链接把内容放在网址 # 后面,这一段浏览器不会发给服务器;但拿到链接的人都能看到,所以带 token 或签名的网址不要分享。

更新记录

更新记录

这个工具的新功能、修复和数据更新,最新的在前。

  1. · v1.0

    首次上线首次上线。

缺功能或发现错误?告诉我们,常被提到的会排进下次更新。 全部工具更新

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie