首页 URL 解码器

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() 函数。请按以下步骤操作:

  1. 粘贴编码字符串。 复制百分号编码的 URL 或参数值,粘贴到输入框中。
  2. 点击"解码"。 工具对输入运行 decodeURIComponent(),实时将解码后的文本写入输出框。
  3. 检查错误。 如果输入包含格式错误的 % 序列,会显示错误消息。修正输入后重试。
  4. 复制结果。 点击"复制到剪贴板"复制解码后的文本,然后在需要的地方使用。

由于每一步都使用 JavaScript 在浏览器中本地运行,你的文本永远不会上传到服务器。这使得解码完全私密、快速,适合处理令牌、密钥和个人数据等敏感内容。

这个 URL 解码器免费吗?

是的,完全免费,无需注册、无水印、无限制。

对格式错误的输入如何处理?

当输入包含 decodeURIComponent() 无法解析的无效 % 序列时,会显示错误消息。

会将 + 转换为空格吗?

不会。decodeURIComponent() 不改变 +。对于表单数据,请在解码前将 + 替换为 %20

能解码 Unicode 吗?

能。如 %E4%BD%A0 的 UTF-8 字节序列会被解码回原始字符。

我的输入会被上传吗?

不会。所有处理都在本地完成,文本永远不会离开你的浏览器。