URL 编码解码 打开工具

URL 解码失败:%zz、结尾的 % 与非法 UTF-8 序列

解码器只做两件事:把 %XX 还原成字节,再把字节按 UTF-8 还原成字符。这两步各对应一类失败——前者是格式错(% 后面不是两位十六进制),后者是编码错(字节拼不出合法 UTF-8)。第三类更简单:结尾孤零零一个 %。

第一类:% 后面不是两位十六进制

合法写法只有 % 加两位 0-9 / A-F。出现 %zz、%G1、%2(只有一位)都会失败。

最常见的原因是双重编码没解干净:原文里的 % 本身就是数据,被编码成 %25 才对;如果直接拼进去,解码器会把 % 当成转义起始符。

另一个来源是手工拼接:从文档里复制了一段含 % 的文本(如「增长 50%」)直接放进 URL。

第二类:结尾多出一个 %

URL 在传输中被截断,最后一个 % 后面的两个字符丢了。常见于:日志系统按长度截断、复制时少选了两个字符、消息队列字段长度不够。

修法是找回完整原文;如果原文已经丢了,只能把结尾的 % 当普通字符处理(编码成 %25),接受末尾数据缺失。

第三类:%XX 组合不是合法 UTF-8

每个 %XX 单独看都合法,但拼起来的字节序列不符合 UTF-8 规则。典型情况:

这一类最容易被误判成「工具坏了」,其实是数据本身不是 UTF-8 文本。

提示只说明原因,不改写输入

三类错误都会指出问题出在第几个字符,并给出中文原因。提示不会改写、也不会清空你的输入——原文保留,你可以对照位置自己改。

这一条很重要:很多在线工具遇到非法输入会「尽力修复」,把非法字节替换成问号或 U+FFFD,结果你看到的是一段被改过的文本,反而找不到原问题。

上面这些都不用装软件,也不用注册:打开页面就能用。

打开 URL 编码解码 →

常见问题

解码出来是「锟斤拷」怎么办?

这是 GBK 与 UTF-8 互转时产生的典型替换字符组合,说明数据在某一层被错误转码过。原始字节很可能已经丢失,只能尝试用 GBK 重新解码原串;如果原串已经变成「锟斤拷」,信息不可恢复。

为什么浏览器能打开,工具却解码失败?

浏览器对非法转义非常宽容,会原样保留或做替换,不报错。工具选择报错,是因为「静默给出一个可能错误的结果」比「明确告诉你哪里不行」更危险。

能强制按 GBK 解码吗?

这个工具只做 UTF-8。GBK 数据需要专门的解码器(可用 TextDecoder('gbk')),但更推荐从源头统一成 UTF-8,而不是在消费端兼容多种编码。