URL 编码工具

按正确边界对完整 URL 或单个嵌套值进行编码,适合处理重定向地址、查询参数和回调链接。

100% 本地运行 · 无需上传
跳转常见问题使用方法常见问题

URL Encoder

Encode a full URL or a single nested component with the right boundary, then copy a clean result for redirects, query parameters, and callback links.

Encoded Output

Generated with encodeURIComponent-style rules.

https%3A%2F%2Fapp.aistacker.dev%2Fcallback%3Fplan%3Dpro%20plus%26from%3Dpricing

常见问题

Q

如何正确编码 redirect_uri?

A

将重定向目标视为一个嵌套值,并在将其附加到外部登录或 OAuth URL 之前,将其作为“单一组件”进行编码。这可以防止内部的 `?`、`&` 和 `=` 泄露到外部查询字符串中。

Q

我应该编码整个 URL 还是编码一个查询值?

A

如果它已经是最终的可读 URL,则编码整个 URL;如果该值将被插入另一个 URL 并作为一个整体,则编码查询值。

工作流程

URL 编码工具 是什么?

URL 编码工具能帮助你在将值附加到重定向链接、回调 URL 或查询字符串之前,确定正确的编码边界。真正的挑战通常不在于百分比编码本身,而是在于判断当前内容是一个应保持可读性的完整 URL,还是一个必须被视为单一安全组件的嵌套值。

在涉及 `redirect_uri`、追踪参数、深度链接、签名 URL 以及在前后端代码间复制回调链接的工作流中,这种边界尤为重要。编码错误的层面会导致分隔符暴露、嵌套目标损坏,或者引发只有在经过多层重定向后才会出现的双重编码 Bug。

如何使用 URL 编码工具

在输入框中粘贴完整 URL 或单个嵌套值。如果字符串应保持为包含 `/`、`?`、`&` 和 `=` 等分隔符的可读 URL,请选择“完整 URL(Entire URL)”模式。如果该值将被作为编码单元插入另一个 URL(如 `redirect_uri` 或某个参数值),请选择“单一组件(Single Component)”模式。

检查编码输出,并参考边界提示和警告面板,确认没有对已包含百分比编码的序列或应单独处理的嵌套 URL 进行二次编码。

示例

输入值:
https://app.aistacker.dev/callback?plan=pro plus&from=pricing

完整 URL 输出:
https://app.aistacker.dev/callback?plan=pro%20plus&from=pricing

单一组件 输出:
https%3A%2F%2Fapp.aistacker.dev%2Fcallback%3Fplan%3Dpro%20plus%26from%3Dpricing

应用场景

1. 在将嵌套的 `redirect_uri` 附加到 OAuth 或登录 URL 前进行编码。

2. 编码包含空格、`&` 或 `=` 的单个查询参数值。

3. 检查回调目标是作为整体 URL 编码的还是作为单一组件编码的。

4. 在生产环境出现重定向 Bug 前,对比 `encodeURI` 和 `encodeURIComponent` 风格的输出。

常见问题

什么时候该编码完整 URL,什么时候该编码单一组件?

当字符串本身就是一个独立的、需要保持分隔符可读的完整 URL 时,编码完整 URL。当该值是要放入另一个 URL 内部作为一个安全单元时,请编码单一组件。

为什么 redirect_uri 通常需要组件编码?

因为重定向目标通常位于另一个查询字符串内部。如果你过早地让其中的 `?`、`&` 或 `=` 保持可读,外部 URL 可能会将嵌套的目标拆分为多个独立的参数。

“过度编码(Over-encoding)”通常意味着什么?

过度编码通常意味着该值已经包含百分比编码序列,但在上游又被编码了一次。这通常表现为重复的 `%25` 模式或看起来不连贯的嵌套 URL。

相关工具