跳到主要内容
FreeOnlineTools Go
简体中文
如何

如何编码与解码 URL — 完全指南

作者:FreeOnlineTools Team · 更新日期:2026-08-28

快速解答

URL 编码将不安全字符转换为 %XX 序列,其中 XX 是字节的十六进制值。空格变为%20(或表单数据中的+),汉字变为多字节%XX序列。使用我们免费的 URL 编码器和 URL 解码器 - 所有处理都在您的浏览器本地进行。

介绍

URL 编码,也称为百分比编码,是一种对 URL 中的保留字符和不安全字符进行编码的机制,以便 URL 可以在互联网上安全传输。 URLs 只能包含一组有限的 ASCII 字符;任何其他字符(空格、非 ASCII 字母、符号)必须以百分比编码为以 % 开头的序列,后跟表示字节值的两个十六进制数字。

步步

  1. 确定需要编码的内容

    不在非保留集中的字符(A-Z、a-z、0-9、-、.、_、~)必须进行百分比编码。这包括空格、查询分隔符(如 = 和 &)、斜杠以及所有非 ASCII 字符(如中文、阿拉伯语或表情符号)。

  2. 对 URL 或查询字符串进行编码

    将文本粘贴到 URL 编码器工具中。它使用encodeURIComponent() 对每个保留字符进行编码。结果立即出现在输出字段中。

  3. 复制编码结果

    单击复制按钮复制百分比编码的字符串。您现在可以安全地将其嵌入到 URL 查询参数、API 请求或表单提交中。

  4. 解码编码的 URL

    将编码的 URL 或查询字符串粘贴到 URL 解码器工具中。它使用decodeURIComponent()来恢复原始字符。验证解码的输出是否符合您的期望。

  5. 验证边缘情况

    检查空格是否正确解码(%20 与 +)、多字节 UTF-8 序列是否解码为正确的字符,以及已编码的字符串是否未双重编码。

示例

使用空格对文本进行编码

输入: Hello World

输出: Hello%20World

对路径分隔符进行编码

输入: a/b

输出: a%2Fb

对汉字进行编码(UTF-8)

输入: 你好

输出: %E4%BD%A0%E5%A5%BD

解码编码的查询参数

输入: key%3Dvalue%26foo%3Dbar

输出: key=value&foo=bar

常见问题

  • 双重编码:对已编码的字符串进行编码,将 %20 转换为 %2520。在重新编码之前始终检查输入是否已经编码。
  • 混淆encodeURI 和encodeURIComponent:encodeURI 保留保留字符,例如/、? 和& 完整的URLs,而encodeURIComponent 对查询参数值的所有内容进行编码。
  • 空格处理:%20 是百分比编码形式; + 仅在 application/x-www-form-urlencoded 正文数据中有效,在 URL 路径或 RFC 3986 的查询字符串中无效。
  • 非 UTF-8 遗留编码:现代浏览器编码为 UTF-8,但遗留系统可能使用 GBK 或 Latin-1,在另一端解码时会导致 mojibake。

提示

  • 对单个查询参数值使用encodeURIComponent(),对已经格式良好的整个URLs 使用encodeURI()。
  • 构建查询字符串时,对值进行编码,但不要对 = 或 & 分隔符进行编码 - 分别对每个值进行编码,然后用 & 连接。
  • 使用我们的 URL 编码器和解码器工具来调试由于查询字符串格式错误而返回 400 错误的 API 调用。
  • 始终使用相同的字符编码 (UTF-8) 在服务器端进行解码,以避免 mojibake。

相关工具

相关指南

参考