URL 编解码

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 部分合法。

操作步骤

  1. 把 URL 或参数值粘贴到输入框。
  2. 选择编码粒度:encodeURIComponent(默认,编码所有非普通字符)或 encodeURI(保留 :/?# 等)。
  3. 点击“编码”或“解码”,结果可一键复制。

输入 / 输出说明

输入
任意 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;应依据真实编码层数逐层处理,避免误改原文中有意保留的百分号。

相关工具

URL 编解码 · 对 URL 或查询参数进行 percent-encoding 与解码
URL 编解码 — 工具示意图 · dayeku.com