URL 解码器
将百分号编码的 URL 转换回可读文本——100% 在浏览器中完成,无需上传。
输入
输出
什么是 URL 解码?
URL 解码是 URL 编码(百分号编码)的逆过程。它将 URL 中的百分号编码序列——以 % 开头后跟两位十六进制数字的序列——转换回原始字符。例如,%20 变成空格,%26 变成 &,%E4%BD%A0 变成中文字符"你"。解码使浏览器和应用程序能够读取在 URL 中安全传输的值。
解码过程由 RFC 3986 规范,每种现代编程语言都实现了该功能。本工具使用的 JavaScript 函数是 decodeURIComponent(),它反转 encodeURIComponent() 产生的编码。它读取每个 %XX 序列,将十六进制数字解释为字节,并根据 UTF-8 字符编码将字节组装成原始字符串。
何时需要 URL 解码
当收到在 URL 中传输的文本并希望读取或处理其原始形式时,就需要 URL 解码。常见场景包括:
- 读取查询参数。 服务器端代码和客户端脚本必须将
?name=John%20Doe解码回John Doe才能使用该值。 - 调试 URL。 将编码的 URL 粘贴到解码器中可显示实际参数值,加快故障排除。
- API 响应。 某些 API 在负载中返回编码值;解码使其可读。
- 分析数据。 UTM 参数和追踪值通常是编码的,必须解码才能报告。
- OAuth 回调。 状态令牌和重定向 URI 以编码形式到达,需要解码后才能验证。
- 国际化文本。 为传输而百分号编码的中文、日文、韩文和 emoji 字符必须解码才能正确显示。
对值解码两次可能会损坏它(例如,原始文本中的字面 %20 会错误地变成空格),因此只解码一次非常重要。
decodeURIComponent 与 decodeURI 的区别
JavaScript 提供了两个解码函数,与两个编码函数对应。decodeURIComponent() 解码每个 %XX 序列,包括 /、? 和 & 等保留字符的编码。decodeURI() 保留已编码的保留字符不变,因为它假设输入是一个完整 URL,其结构必须被保留。
当解码用 encodeURIComponent() 编码的单个参数值时,使用 decodeURIComponent()。仅当解码用 encodeURI() 编码的完整 URL 时,才使用 decodeURI()。本工具使用 decodeURIComponent(),因为最常见的实际任务是解码单个值而非整个 URL。
常见的解码字符
下表列出了实践中最常遇到的编码序列及其解码形式。
| 编码 | 字符 | 说明 |
|---|---|---|
| %20 | 空格 | 空格的规范百分号编码 |
| + | 空格(表单数据中) | 仅在 application/x-www-form-urlencoded 中 |
| %26 | & | 分隔查询参数 |
| %3D | = | 分隔键和值 |
| %3F | ? | 标记查询字符串开始 |
| %23 | # | 标记片段开始 |
| %2F | / | 路径分隔符 |
| %25 | % | 百分号本身 |
如果输入中包含表示空格的 + 号(如表单数据中),你可能需要在解码前将 + 替换为 %20,因为 decodeURIComponent() 不会改变 +。
如何解码 URL
使用本工具解码文本只需一秒,完全在浏览器内完成。无需上传、无需注册、无需安装。工具使用 JavaScript 原生的 decodeURIComponent() 函数。请按以下步骤操作:
- 粘贴编码字符串。 复制百分号编码的 URL 或参数值,粘贴到输入框中。
- 点击"解码"。 工具对输入运行
decodeURIComponent(),实时将解码后的文本写入输出框。 - 检查错误。 如果输入包含格式错误的
%序列,会显示错误消息。修正输入后重试。 - 复制结果。 点击"复制到剪贴板"复制解码后的文本,然后在需要的地方使用。
由于每一步都使用 JavaScript 在浏览器中本地运行,你的文本永远不会上传到服务器。这使得解码完全私密、快速,适合处理令牌、密钥和个人数据等敏感内容。
这个 URL 解码器免费吗?
是的,完全免费,无需注册、无水印、无限制。
对格式错误的输入如何处理?
当输入包含 decodeURIComponent() 无法解析的无效 % 序列时,会显示错误消息。
会将 + 转换为空格吗?
不会。decodeURIComponent() 不改变 +。对于表单数据,请在解码前将 + 替换为 %20。
能解码 Unicode 吗?
能。如 %E4%BD%A0 的 UTF-8 字节序列会被解码回原始字符。
我的输入会被上传吗?
不会。所有处理都在本地完成,文本永远不会离开你的浏览器。