什么是URL解码?
URL解码(也称为百分号解码)是将URL中编码的字符转换回其原始形式的过程。当数据通过URL传输时,特殊字符被替换为百分号(%)后跟两个十六进制数字。例如,%20代表空格字符,%26代表和号(&)。
免费 URL 解码器 – 在浏览器中即时解码与编码 URL。快速、私密、无需安装。
复制您的编码URL并粘贴到上方的输入框中。
工具会在您输入时自动实时解码您的URL。
点击复制按钮将解码后的URL保存到剪贴板。
自动检测并解码多层URL编码,直到结果稳定。
完全支持UTF-8编码字符,包括国际文本和表情符号。
识别格式错误的URL编码,并提供清晰的错误消息用于调试。
所有处理都在您的浏览器中进行。您的数据永远不会离开您的设备。
URL百分号编码 是用于在URL中编码特殊字符的基本机制。当您看到像 %20 或 %26这样的字符时,它们代表百分号(%)后跟与特定字符对应的十六进制值。
UTF-8解码 对于处理URL中的国际字符至关重要。我们的工具完全支持UTF-8编码内容,允许您解码包含任何语言字符的URL,包括中文、日文、阿拉伯文和表情符号。
对于Web开发至关重要。URL由几个部分组成:协议、域名、路径、查询参数和片段。当包含保留字符时,每个组件可能需要编码,例如 URL组件 ?, &, =, #.
REST API调试。在使用API时,您经常会遇到编码的查询参数或路径段。能够快速解码这些URL有助于识别API请求中的问题并理解实际传输的数据。
百分号编码出现在远不止地址栏的地方。OAuth redirect_uri 的查询字符串、推送通知里的深链接、营销邮件中的追踪链接、Web 服务器日志里记录的路径片段,全都带着编码后的数据。手动解码又慢又容易出错,所以这个页面会在您粘贴的瞬间替您完成解码。
有一个细节经常让人困惑:在 HTML 表单提交(application/x-www-form-urlencoded)中,+ 号表示空格。但在百分号编码的 URL 里,+ 就是加号本身。这就是为什么同样的输入会因来源不同而解出不同结果——也是 %2B 存在的意义:在表单风格的数据中表示字面加号。本解码器遵循 URL 标准:它解码百分号序列,并保持 + 原样。
以下八个序列覆盖了您在真实 URL 中会看到的大部分情况。发布之前,我对照 WHATWG URL 标准逐条核验了这张表里的每个映射。
| 编码 | 解码 | 在哪里见到 |
|---|---|---|
%20 | space | 经典场景。输入的空格在 URL 中总是变成 %20。 |
%23 | # | 字面意义的井号。原始 # 会开启片段,所以作为数据时必须编码。 |
%26 | & | 字面意义的与号。原始 & 会分割查询参数。 |
%3D | = | 字面意义的等号。原始 = 会把键和值分开。 |
%3F | ? | 字面意义的问号。原始 ? 会开启查询字符串。 |
%2B | + | 字面意义的加号。查询字符串里许多服务器把裸 + 当作空格,所以真正的加号必须编码。 |
%25 | % | 百分号本身。必须编码,否则解码器会误读整个序列。 |
%2F | / | 值内部的斜杠。服务器常在路径中保留原始斜杠,但查询数据中不行。 |
拿这个 URL 为例——您很可能从浏览器地址栏复制过这样的地址:
https://api.example.com/search?q=hello%20world&lang=zh%26en? 之前是路径,之后是查询字符串,其中每一对都由 & 分隔。
解码器读取 hello%20world 和 zh%26en 两个值,并把每个百分号序列还原成字符。
q 变成 hello world,lang 变成 zh&en。zh%26en 里的 & 是数据而不是分隔符——解码把它还原,同时不破坏整体结构。
用 JavaScript 做同样的解码:
const url = "https://api.example.com/search?q=hello%20world&lang=zh%26en";
const params = new URLSearchParams(new URL(url).search);
console.log(params.get("q")); // "hello world"
console.log(params.get("lang")); // "zh&en"运行后输出:
hello world
zh&en一次只解一层。如果 URL 被编码了两次,您会在源码中看到 %2520:第一次解码变成 %20,第二次变成空格。本页的解码器会检测这些额外层并为您一次性解析。
您可以手工解码,也可以在浏览器控制台或服务器端脚本里解码。下面比较几种常见做法:
| 方法 | UTF-8 | 多层解码 | 适用场景 |
|---|---|---|---|
| URL Decode Online | 是 | 是,自动 | 日常解码:粘贴一次,得到完整解码文本,任何畸形序列都会被标出。 |
| 手工认读代码 | 慢 | 容易混淆 | 只适合单个字符;%E4%B8%AD = 中 需要记住 UTF-8 字节表。 |
| decodeURIComponent() | 是 | 否 | 在 DevTools 控制台快速检查;遇到畸形输入会抛出 URIError。 |
| Python unquote() | 是 | 否 | 服务器端脚本和日志管道;unquote_plus 还会把 + 转成空格。 |
| curl --data-urlencode | 是 | 否 | 它做的是编码而非解码:适合在终端构造测试请求,并且会把空格写成 +(表单风格)。 |
百分号编码字符串出现在远不止“修复失效链接”的工作流里:
URL解码(也称为百分号解码)是将URL中编码的字符转换回其原始形式的过程。当数据通过URL传输时,特殊字符被替换为百分号(%)后跟两个十六进制数字。例如,%20代表空格字符,%26代表和号(&)。
只需将您的编码URL粘贴到本页面顶部的输入框中。我们的在线URL解码器会在您输入时自动实时解码URL,立即显示结果。然后您可以一键复制解码后的结果。这是一个完全免费的URL解码器,无需注册、付费或安装软件。 您也可以粘贴部分编码的 URL;解码器会持续解码,直到无法再进一步解码为止,并显示它处理了多少层。
百分号编码(也称为URL编码)是一种使用有限的ASCII字符集在URL中编码信息的机制。特殊字符被替换为百分号(%)后跟其十六进制ASCII值。这确保URL可以在所有系统中安全传输而不会损坏数据。 例如,表情符号 😀 会变成 %F0%9F%98%80 —— 它的四个 UTF-8 字节以十六进制写出。
URL只能包含有限的ASCII字符集。特殊字符如空格、和号、问号以及非ASCII字符(如UTF-8国际文本)必须编码才能在URL中安全传输。这确保URL在全球所有浏览器、服务器和系统中正常工作。 如果让这些字符保持原样,URL 的含义就会改变:& 会分割参数,# 会开启片段,而许多服务器会直接拒绝原始空格。
我们使用 Cookie 来提供基本网站功能、进行隐私友好的统计,并在您同意的情况下使用 Google Analytics 和广告。 隐私政策