输入关键词搜索,如文本、json、图片等
URL编码/解码

一、什么是 URL 编码?

URL 编码(也叫百分号编码)是将 URL 中的特殊字符转换为 %XX 格式的过程。根据 RFC 3986 规范,URL 中只允许出现字母、数字和 -._~ 等少数保留字符,其他字符(如中文、空格、&、= 等)必须进行编码才能正确传输。例如,"你好" 编码后变为 %E4%BD%A0%E5%A5%BD,空格编码后变为 %20

二、encodeURI 和 encodeURIComponent 的区别

  • encodeURI:用于编码完整 URL,不会编码 :/?#[]@!$&'()*+,;= 等URL结构字符
  • encodeURIComponent:用于编码 URL 参数值,会编码所有特殊字符,包括 &=

本工具使用 encodeURIComponent,适合编码 URL 参数值。如果需要编码完整 URL,请注意保留结构字符。

三、典型使用场景

  • 构造带参数的链接,如 ?q=关键字&from=tools-web,避免特殊字符导致请求失败
  • 调试接口时,将原始文本编码后放入 URL 中进行请求测试
  • 解析日志或抓包数据中已经被编码的 URL,方便阅读与排查问题
  • 处理前端路由中的中文参数,确保页面跳转时参数正确传递
  • OAuth 回调地址中包含特殊字符时,需要进行 URL 编码

四、常见问题

1. 为什么空格有时变成 + 号,有时变成 %20?
在 URL 的查询字符串中(application/x-www-form-urlencoded),空格会被编码为 +;而在 URL 路径中,空格必须编码为 %20encodeURIComponent 使用 %20,这是更标准的做法。

2. 编码后中文为什么这么长?
一个中文字符在 UTF-8 编码下占 3 个字节,每个字节编码为 %XX 格式,因此一个中文字符会变成 9 个字符(如 %E4%BD%A0)。这是正常现象。

3. 数据安全
编码和解码操作都在浏览器本地完成,不会上传你的请求数据。使用时只需将原始内容粘贴到输入框,根据需要点击编码或解码按钮,再将结果复制到接口工具、浏览器地址栏或代码中即可。