🔗

URL 编码/解码

编码或解码 URL 安全字符串(百分号编码)。支持 URL编码、URL解码 等场景,支持双向转换,实时预览,粘贴即转,一键复制。oltool.net 免费在线工具。

就绪
解码后 URL
0 字符
编码后 URL
0 字符

关于 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 实体编码用 & 加名字(如 < → &lt;)。前者用于 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 时仍需主动编码。