无需登录 数据私有 本地保存

高级URL编解码工具 - 批量处理/递归解码

12
0
0
0

高级URL编解码工具

批量处理 · 递归解码 · 支持 encodeURI / encodeURIComponent

0 字符 0
0 字符 0 最大解码深度: 0

常见问题与知识点

URL编码(又称百分号编码)是一种将URL中的非ASCII字符和特殊字符转换为%XX格式的机制。由于URL只能包含ASCII字符集中的部分安全字符(字母、数字、- _ . ~),其他字符如中文、空格、&=等都必须经过编码才能安全传输。例如,空格被编码为%20,中文字符"你好"被编码为%E4%BD%A0%E5%A5%BD

encodeURI:保留URL结构中的特殊字符(:/?#[]@!$&'()*+,;=),仅编码非ASCII字符和少数不安全字符。适用于编码完整URL
encodeURIComponent:编码所有特殊字符,包括:/?#&=等。适用于编码URL参数值、路径片段或表单数据。
示例encodeURI('https://a.com/?q=你好') → 保留://?=;而encodeURIComponent会将这些符号全部编码。

递归解码是指对字符串进行多次连续解码,直到结果不再变化为止。有些URL可能被多次编码(双重编码、三重编码),例如%253A → 第一次解码 → %3A → 第二次解码 → :。普通解码只会解开一层,递归解码则会持续解码到底。这在处理经过多层代理、重定向或不当编码的URL时非常有用。

%20是URL编码中空格的标准表示方式。而+application/x-www-form-urlencoded格式中空格的替代表示(源自HTML表单提交)。在URL查询字符串中两者通常被视为等价,但在URL路径部分+就是字面量加号。严格来说,encodeURIComponent将空格编码为%20,不会产生+

URL协议(RFC 3986)规定URL只能使用ASCII字符集。中文、日文、阿拉伯文等非ASCII字符必须先转换为UTF-8字节序列,再用%XX格式编码。现代浏览器地址栏会自动进行编码和解码,但在复制URL或通过API传输时仍需手动编码。例如"中文"的UTF-8编码为E4 B8 AD E6 96 87,URL编码后为%E4%B8%AD%E6%96%87

检查字符串中是否存在%后跟两个十六进制字符(%[0-9A-Fa-f]{2})的模式。但要注意:有些字符本身就是%(编码后为%25),所以判断并不总是直观。如果字符串中大量出现%XX模式且解码后能产生可读内容,则很可能已被编码。递归解码可以安全地处理不确定的情况。

URL编码(百分号编码)是URL协议层面的标准,使用%XX格式,主要用于URL中传输非ASCII数据。Base64编码使用64个可打印字符(A-Za-z0-9+/)表示二进制数据,常用于在文本协议中嵌入二进制数据。Base64编码后的字符串可能包含+/,在URL中使用时通常还需要再进行URL编码(或使用URL安全的Base64变体)。

批量处理允许您一次性处理多个URL或参数值,每行独立运算。这在以下场景非常实用:处理CSV中的URL列、批量解码日志中的编码字符串、同时编码多个查询参数值等。每行独立处理确保各条目之间不会相互干扰,行与行之间保持一一对应关系。
已复制到剪贴板