URL 百分号编解码
使用百分号编码对 URL 中的特殊字符进行编码或解码。构建查询字符串、API 请求和安全链接的必备工具。
此转换仅在您的浏览器中运行,不会上传任何内容。
空格变为 %20(不是 +)。默认是查询值用的组件模式;完整 URI 会保留保留字符。
- 输入0
- 输出0
- 选项组件 (encodeURIComponent)
输入
输出
这个工具是什么?
对 URL 文本做百分号编解码,使空格、Unicode 和保留字符能安全出现在查询、路径、重定向参数和 API 调用中。
组件(encodeURIComponent,默认)用于单个值;完整 URI(encodeURI)保留 :, /, ?, &。输入即更新,仅在浏览器中运行。
百分号编码不是加密。
常见用途
- 编码含空格、
&或=的查询参数值 - 准备或检查放进
?redirect=的嵌套 URL - 把百分号编码的日志或 API 错误还原为可读文本
如何使用
- 选择 Encode 或 Decode;输入时结果实时更新。
- 查询/路径值保持关闭完整 URI(组件模式);仅在处理整段 URL 时打开。
- 粘贴文本或编码字符串。用 Sample 对比两种模式。
- 复制结果。解码失败时检查
%ZZ、单独的%或截断的 UTF-8。
encodeURI vs encodeURIComponent
| 输入 | 组件 (encodeURIComponent) | 完整 URI (encodeURI) |
|---|---|---|
a b&c=1 | a%20b%26c%3D1 | a%20b&c=1 |
https://ex.com/a?b=1 | https%3A%2F%2Fex.com%2Fa%3Fb%3D1 | https://ex.com/a?b=1 |
a+b=c | a%2Bb%3Dc | a+b=c |
把值放进查询或路径时用组件;输入已是完整 URL 且需保留分隔符时用完整 URI。
示例
| 输入 / 设置 | 输出 | 说明 |
|---|---|---|
hello world → 组件编码 | hello%20world | 空格 → %20 |
a b&c=1 → 组件 | a%20b%26c%3D1 | 为单个值编码 & 与 = |
a b&c=1 → 完整 URI | a%20b&c=1 | 保留保留标点,空格仍为 %20 |
hello+world → 组件解码 | hello+world | 此处 + 是字面量,不是表单空格 |
实践中的常见误区
- 用组件模式编码整段重定向 URL 会把
/、?变成%2F/%3F。 application/x-www-form-urlencoded把+当空格;decodeURIComponent不会。URL 组件请用%20。- 编码不是访问控制——查询里的秘密仍可能出现在日志和 Referer 中。
参考资料
最后审阅: 2026-07-26
常见问题
- 组件模式和完整 URI 模式有何区别?
- 组件模式使用 encodeURIComponent,会编码 &, =, ?, / 等保留字符。完整 URI 模式使用 encodeURI,保留这些分隔符, 只转义不安全字符。
- 为什么空格是 %20 而不是 +?
- 本工具遵循百分号编码(encodeURIComponent)。用 + 表示空格是 application/x-www-form-urlencoded 表单规则。 字面量 + 在组件模式下会变成 %2B。
- 解码失败常见原因是什么?
- 畸形百分号序列(如 %ZZ)、单独的 %,或不完整的 UTF-8 字节。请检查转义或粘贴完整编码值。
- 数据会上传到服务器吗?
- 不会。编解码仅在浏览器中运行。