URL解码器
将百分号编码的URL和URI组件转换回人类可读的文本。处理RFC 3986中的%XX序列和HTML表单提交中的+编码空格。
服务器访问日志、重定向链和API错误消息中常常包含难以一眼看懂的百分号编码URL。https://example.com/search?q=Hello%20World%21&lang=tr%C3%BC%C5%9F在一次粘贴中变得可读。这个基于浏览器的解码器遵循RFC 3986,并使用JavaScript的decodeURIComponent()--没有任何内容被上传,不需要账户。在我们对典型API调试工作流程的分析中,解码URL字符串是事件调查期间开发人员最常见的五项任务之一。
如何解码URL
- 将百分号编码的URL或查询字符串粘贴到输入框中。
- 点击解码或启用实时模式,以便在输入时立即获得结果。
- 可读的解码输出会出现在结果面板中。
- 复制解码文本以进行分析、文档编制或共享。
理解URL解码
解码的内容
解码器通过将每个%XX序列替换为该十六进制字节值对应的字符来逆转RFC 3986的百分号编码。对于多字节Unicode字符,多个连续的%XX序列会一起解码为UTF-8字节序列。查询字符串中的+符号可以选择性地解码为空格--这是HTML表单提交中使用的application/x-www-form-urlencoded约定。
常见序列及其含义
%20→ 空格(RFC 3986标准)%2B→+%2F→/%3A→:%3D→=%26→&%40→@%23→#%C5%9F→ş(多字节UTF-8)%E4%B8%AD→中(多字节UTF-8)
示例
输入
https://example.com/search?q=Hello%20World%21&lang=tr%C3%BC%C5%9F
输出
https://example.com/search?q=Hello World!&lang=trüş
常见用例
- 服务器日志分析 - 阅读访问日志中的查询参数和引荐URL
- 重定向调试 - 解码身份验证流程中的
?redirect=或?return_to=值 - API测试 - 解码在网络跟踪中捕获的请求URL,然后进行分析
- 分析检查 - 阅读UTM参数和跟踪URL的实际内容
常见错误
- 双重编码的URL -
%2520解码为%20,而不是空格,因为%25是%本身的编码;你需要解码两次 - 错误的+处理 -
+仅在表单数据中表示空格;在路径段中,+是字面上的加号;相应地切换表单数据选项 - 非UTF-8编码 - 较旧的网络应用程序可能使用ISO-8859-1;在这些情况下,解码输出对于非ASCII字符会出现乱码
要编码URL,请使用URL编码器。对于嵌入在URL查询参数中的JSON,先用此工具解码,然后使用JSON验证器进行验证。要解码URL中找到的Base64,请在URL安全模式下使用Base64解码器。
常见问题
URL解码是什么意思?
URL解码(百分号解码)是对RFC 3986中定义的百分号编码的逆转。它将每个%XX序列替换为该十六进制对所代表的实际字节,然后将字节序列解释为UTF-8文本。Hello%20World%21变为Hello World!,因为%20是空格的十六进制表示(字节0x20),而%21是感叹号的十六进制表示(字节0x21)。
为什么解码会产生乱码字符?
乱码通常意味着URL使用非UTF-8字符集编码(例如ISO-8859-1,常见于旧的网络应用程序),或者数据被双重编码。如果你看到%2520解码为%20而不是空格,则说明URL被编码了两次。再解码一次以获取实际值。
空格的%20和+有什么区别?
%20是RFC 3986标准中表示空格的编码,用于现代API中的URL路径和查询值。+符号仅在application/x-www-form-urlencoded格式(HTML表单提交)中表示空格。此解码器同时处理这两种情况:%20始终解码为空格;+在表单数据模式下解码为空格。我可以一次解码整个URL及其查询参数吗?
可以。粘贴完整的URL,包括方案、主机、路径和查询字符串。解码器会在一次处理过程中处理所有百分号编码的序列。请注意,解码结构字符如%2F和%3F可能会使结果URL失效--仅将完全解码的版本用于阅读,而不是用于发起请求。
这个工具在处理包含令牌或会话ID的私有URL时安全吗?
可以。解码完全在客户端运行,使用JavaScript的decodeURIComponent()。URL、身份验证令牌、会话标识符和查询参数从不发送到任何服务器或存储在任何地方。