URL 编码 / 解码工具

在不破坏原始请求结构的情况下,对完整 URL 进行编码、解码回调链接,并转义查询参数值。

URL 编码 / 解码工作台
试试一个真实的 URL 编码工作流
什么是 URL 编码?

URL 编码(也称百分号编码)会把空格、Unicode 和保留字符转换为适合传输的安全格式。当浏览器 URL、redirect_uri、API 查询值或复制来的回调链接需要在传输过程中保持原意时,就该使用它。

URL 编码的工作原理

如果你想在一条完整链接中继续清晰保留 :, /, ?, &, = 这样的分隔符,请使用完整 URL 编码。如果某个值必须放进查询参数、重定向目标或嵌套回调 URL 中,请使用组件编码。

常见使用场景
  • 在认证或 API 请求离开你的应用之前,对 redirect_uri、state 和搜索值进行编码
  • 解码从日志、支持工单或浏览器历史中复制的回调链接
  • 在不破坏基础端点分隔符的情况下构建 API 请求 URL
  • 在单个查询值中转义邮箱地址、嵌套 URL 和加号
  • 在把 URL 粘贴到文档或代码前检查 Unicode 和空格
示例
输入: redirect_uri=https://app.example.com/callback?next=/settings
输出: redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Fnext%3D%2Fsettings
输入: https://app.example.com/callback?next=%2Fsettings%3Ftab%3Dprofile
输出: https://app.example.com/callback?next=/settings?tab=profile
输入: email=dev+alerts@example.com
输出: email=dev%2Balerts%40example.com
常见问题

什么时候应该编码完整 URL,而不是单个参数值?

如果你希望整条链接仍然可读,并保留 ?, &, = 这样的分隔符,就应该编码完整 URL。如果数据必须放进单个 key=value 对中,例如 redirect_uri、state 或搜索词,就只编码该参数值。

encodeURI 和 encodeURIComponent 之间有什么区别?

encodeURI 会为完整链接保留 :, /, ?, # 等 URL 结构字符。encodeURIComponent 也会转义这些保留字符,因此它更适合查询参数值、嵌套 URL 和复制来的回调目标。