URL 编解码
对 URL 或查询参数进行 percent-encoding 与解码
编码参数值选“参数值编码”,编码完整地址选“完整地址编码”;两种模式对 /、? 等字符的处理不同。
示例
输入
a+b c/中文
示例结果
a%2Bb%20c%2F%E4%B8%AD%E6%96%87
示例使用参数模式。普通解码不会将 + 当成空格。
技术细节与边界
百分号后两个十六进制数字表示一个字节。浏览器先用 UTF-8 编码,再转成 %HH。完整 URL 模式保留 : / ? # 等结构字符;参数模式会编码它们。JavaScript 的 encodeURIComponent 仍保留 ! ' ( ) *,因此不能直接视为严格的 RFC 3986 签名规范化实现。
关于此工具
对 URL 参数值或完整地址进行百分号编码与解码。分别提供 encodeURIComponent 与 encodeURI 模式,便于处理中文、空格、加号、斜杠以及回调地址中的嵌套参数。
适用场景
- 把带空格 / 中文 / 特殊字符的查询参数拼进 URL。
- 排查为什么服务器接收到的参数出现了 `%20`、`%25` 之类的乱码。
- 在文档里贴一段 curl 或 Postman 命令,希望 URL 部分合法。
操作步骤
- 把 URL 或参数值粘贴到输入框。
- 选择编码粒度:encodeURIComponent(默认,编码所有非普通字符)或 encodeURI(保留 :/?# 等)。
- 点击“编码”或“解码”,结果可一键复制。
输入 / 输出说明
- 输入
- 任意 UTF-8 字符串;解码时需要是合法 percent-encoded 序列。
- 输出
- percent-encoded 字符串或解码后的原文。
注意事项
encodeURIComponent 是最安全的,绝大多数场景(查询参数值、路径片段)都应该用它。encodeURI 只在你确认对方期望完整 URL 时才用。
常见问题
- 中文 URL 参数应该怎样进行百分号编码?
- 中文URL参数应使用参数值编码,让UTF-8字节转换为百分号序列。每个字节用百分号加2位十六进制表示,常见汉字占3字节;只编码参数值,避免把整个地址的结构字符一起转义。
- URL 解码为什么不会把加号变成空格?
- 普通URL解码中的加号不会自动变成空格,空格通常写作%20。表单编码才约定用加号表示空格,字面加号可写成%2B;处理接口参数时,应先确认发送方采用的是哪一种编码规则。
- URL 重复编码为什么出现%25?
- URL重复编码会把已有百分号再次编码为%25,因此结果不能只解码一次就还原。比如%20重复编码后成为%2520;应依据真实编码层数逐层处理,避免误改原文中有意保留的百分号。
相关工具