Encoded
结果将显示在这里…

URL 编码 & 解码工具

即时编码或解码 URL 及 URL 组件。支持组件模式和完整 URL 模式切换。所有处理在浏览器完成。

什么是 URL 编码?

URL 编码(也称为百分号编码)是一种将 URL 中不允许的字符转换为可以安全传输的格式的机制。它用百分号(%)加上两个代表字符字节值的十六进制数字来替换不安全的字符。例如,空格变为 %20,与号变为 %26。

这个免费的在线工具在你输入时实时编码和解码 URL。它支持两种模式:组件模式(encodeURIComponent)用于编码单个 URL 参数,完整 URL 模式(encodeURI)用于编码完整 URL 同时保留结构字符如 :、/、?、#。所有处理完全在你的浏览器中运行——数据永远不会被发送到服务器。

核心功能

  • 实时编码和解码——输入时输出即时更新
  • 组件模式(encodeURIComponent)——编码所有特殊字符包括 :、/、?、#、& 和 =
  • 完整 URL 模式(encodeURI)——编码特殊字符同时保留 URL 结构字符
  • 交换按钮,快速反转操作并将输出作为新输入
  • 文件上传支持,可编码或解码文本文件
  • 一键下载和复制到剪贴板
  • 全屏模式,适合处理长 URL
  • 完整 UTF-8 支持——正确编码多字节字符包括表情符号和国际文本
  • 100% 客户端处理——你的 URL 和数据永远不离开浏览器
  • 简洁响应式界面,在桌面和手机上均可使用

如何使用此工具

  1. 选择模式:编码(文本转百分号编码)或解码(百分号编码转文本)。
  2. 在左侧面板输入或粘贴内容,结果即时显示在右侧面板。
  3. 选择组件模式编码所有内容(用于查询参数),或选择完整 URL 模式保留 URL 结构。
  4. 使用交换按钮反转操作——非常适合检查编码/解码的往返结果。
  5. 点击复制将结果复制到剪贴板,或点击下载保存为文件。

为什么 URL 编码很重要

URL 只能包含有限的 ASCII 字符集。空格、与号、问号等特殊字符以及非 ASCII 字符(重音字母、中日韩字符、表情符号)必须进行百分号编码才能在 URL 中正确传输。没有正确编码,URL 会出错——浏览器会误解结构,服务器会拒绝请求,或数据在传输过程中被损坏。

组件编码和完整 URL 编码之间的区别至关重要。在构建查询参数时,你必须使用组件编码(encodeURIComponent)单独编码每个参数值。如果使用完整 URL 编码,& 和 = 等字符会被保留,从而破坏查询字符串结构。反之,在编码整个 URL 时,完整 URL 模式会保留定义 URL 方案、主机、路径和查询的结构字符。

常见使用场景

  • 构建 API 查询字符串——正确编码包含特殊字符或空格的参数值
  • 调试格式错误的 URL——解码百分号编码的 URL 以读取原始文本并识别问题
  • 表单数据处理——编码用户输入以安全地包含在 URL 查询参数中
  • 重定向 URL——编码在 OAuth 和认证流程中作为参数传递的回调 URL
  • 国际化——编码包含非 ASCII 字符的 URL,如重音字母或中日韩文本
  • 网页抓取——解码提取的 URL 以获取原始地址
  • 深层链接——为移动应用和单页应用构造正确编码的深层链接

理解百分号编码

在百分号编码中,字符的每个字节表示为 %XX,其中 XX 是两位十六进制值。ASCII 字符如 A-Z、a-z、0-9 以及一些特殊字符(-、_、.、~)被视为非保留字符,不需要编码。所有其他字符必须编码。

对于 UTF-8 多字节字符,每个字节分别编码。例如,汉字 中 编码为 %E4%B8%AD(三个字节)。这就是为什么 URL 编码会显著增加包含非 ASCII 文本的字符串长度。JavaScript 中的 encodeURIComponent 函数自动处理这个过程,先将字符串转换为 UTF-8 字节,然后对每个字节进行百分号编码。

URL 编码技巧

  • 始终对单个查询参数值使用 encodeURIComponent——永远不要用它编码整个 URL
  • 仅在需要编码完整 URL 同时保留其结构时使用 encodeURI
  • 双重编码是常见错误——对已编码的字符串再次编码会将 %20 变成 %2520
  • 调试时,先解码 URL 查看实际值,然后根据需要重新编码
  • 空格可以编码为 %20 或 +(在查询字符串中)——%20 是标准做法,但 + 在表单提交中很常见
  • 请记住 JavaScript 的 decodeURI 和 decodeURIComponent 对格式错误的输入会抛出错误——本工具会优雅地处理这些错误

常见问题