如何编码和解码 URL

· 3 分钟阅读

如果您在 URL 中见过空格的位置是 %20,或重音字符的位置是 %C3%A9,那就是 URL 编码。它是 Web 的基础构建块,理解它有助于调试失效链接、API 问题和表单提交。

URL 编码做什么

URL 只能包含一组有限的安全字符:字母(A-Z、a-z)、数字(0-9)和少数特殊字符(-、_、.、~)。其他所有内容 · 空格、重音、emoji、&、=、#、? 等符号 · 必须转换为安全格式。

URL 编码(也叫 percent-encoding)将不安全字符替换为 % 后跟其字节的十六进制值:

字符 编码
空格 %20
& %26
= %3D
# %23
? %3F
/ %2F
@ %40

何时需要 URL 编码

如何编码和解码

  1. 选择编码或解码· 选择方向。查询参数选 encodeURIComponent,完整 URL 选 encodeURI。
  2. 粘贴您的输入· 输入文本或 URL。结果即时更新。
  3. 复制输出· 在代码、API 请求或浏览器中使用结果。

小贴士

常见问题

encodeURI 和 encodeURIComponent 有什么区别?

encodeURI 保留 URL 结构中的有效字符(斜杠、冒号、问号)。encodeURIComponent 对除字母、数字和少数安全字符外的所有内容进行编码。查询参数值使用 encodeURIComponent,完整 URL 使用 encodeURI。

为什么空格变成 %20 或 +?

在 URL 编码中,空格变为 %20。在表单数据(application/x-www-form-urlencoded)中,空格变为 +。两者在其上下文中都有效,但 %20 是 URL 的通用标准。

我需要手动编码 URL 吗?

大多数情况下,您的语言或框架会自动处理编码。手动编码在手工构建 URL、调试 API 请求或处理含特殊字符的查询字符串时很有用。

我的数据会发送到服务器吗?

不会。所有编码和解码都在您的浏览器中进行。