解码后 URL
编码后 URL
关于 URL 编码/解码
URL 编码(也叫百分号编码,Percent-encoding)将不安全的字符(空格、中文、& = ? 等)转换成 %XX 形式,使 URL 可以安全地包含任意字符。本工具支持 URL 编码与解码双向转换,所有处理在浏览器本地完成。
使用场景
- 查询参数构造 — 把用户输入(中文、特殊字符)拼接到 URL 时必须先编码,否则后端解析出错。
- 调试 GET 请求 — 从浏览器 Network 面板复制的 URL 编码后看不出原文,本工具可还原。
- 处理特殊文件名 — 上传带空格、中文的文件名时,HTTP 路径里需要编码后才能正确路由。
- OAuth 回调 URL — redirect_uri 参数本身是 URL,作为查询参数时需要二次编码。
- 邮件链接 — 在 mailto: 链接里塞预填的主题或正文,特殊字符必须 URL 编码。
常见问题
URL 编码和 HTML 实体编码有什么区别?
完全不同。URL 编码用 %XX 表示字节(如 空格 → %20),HTML 实体编码用 & 加名字(如 < → <)。前者用于 URL,后者用于 HTML 正文。
为什么空格有时编码成 +,有时是 %20?
application/x-www-form-urlencoded(表单提交)用 + 表示空格,URL 路径和大多数现代场景用 %20。本工具默认 %20。
需要编码哪些字符?
RFC 3986 定义的"非保留字符"(A-Z、a-z、0-9、- _ . ~)不用编码,其他都建议编码。但 ?#&= 在不同位置含义不同——查询参数里要编码,作为分隔符不要。
编码两次会怎样?
会出现 %25XX 这种"编码的百分号",解码一次只解一层。这是后端最常见的 bug——确认前端编码一次即可,别叠加。
URL 里能直接放中文吗?
现代浏览器地址栏显示中文,但底层会自动编码为 UTF-8 字节再 %XX。在代码里手动构造 URL 时仍需主动编码。