URL 编码器

对 URL 中的文本进行百分号编码:encodeURIComponent、严格 RFC 3986、完整 URL(encodeURI),或用 + 表示空格的表单数据。UTF-8 正确,浏览器内运行。

42 个字符 · 47 字节(UTF-8)

0 个字符 · 0 字节(UTF-8)

完全在浏览器中运行,您的数据不会被上传。

什么是 URL 编码?

将文本转换为百分号编码,以便在 URL 中安全使用。不在允许字符集内的字符会按其 UTF-8 字节编码,每个字节写成 %XX。四种模式对应开发者实际使用的编码器。

如何使用 URL 编码

  1. 在输入中键入或粘贴文本。
  2. 选择编码模式:组件用于查询参数值或路径段,严格 RFC 3986,完整 URL 用于保留 : / ? & =,表单数据用于 application/x-www-form-urlencoded。
  3. 从输出中复制编码后的字符串。

示例

输入
a b&c=é
输出
a%20b%26c%3D%C3%A9

组件模式。表单模式的结果为 a+b%26c%3D%C3%A9。

何时使用 URL 编码

对单个参数值使用组件模式——切勿用它编码完整的 URL,否则 /、? 和 & 也会被编码。完整 URL 模式只应用于结构已经正确的 URL。HTML 表单提交和许多服务器框架期望使用表单模式。

URL 编码 的工作原理

文本先转换为 UTF-8 字节。属于所选模式安全字符集的字节会保持不变,其余字节变为 % 加两位大写十六进制数字。组件模式保留 A–Z a–z 0–9 - _ . ! ~ * ' ( )(与 JavaScript 的 encodeURIComponent 相同);RFC 3986 模式只保留 A–Z a–z 0–9 - . _ ~;完整 URL 模式还会保留 ; , / ? : @ & = + $ #(与 encodeURI 相同);表单模式保留 A–Z a–z 0–9 * - . _,并把空格写成 +(与 URLSearchParams 相同)。

常见用例

  • 将搜索词或重定向 URL 编码为查询参数
  • 构建 OAuth 或 API 签名的基础字符串(RFC 3986 模式)
  • 为 curl -d 准备表单请求体
  • 对越南文或中文 slug 等非 ASCII 路径进行编码

常见问题

空格应该用 %20 还是 +?

%20 在 URL 的任何位置都有效。+ 只在表单编码的查询字符串中表示空格;需要这种情况时请选择表单数据模式。

encodeURI 和 encodeURIComponent 有什么区别?

encodeURI 会保留构成 URL 结构的字符(: / ? # & =),而 encodeURIComponent 会对它们编码,使参数值不会破坏 URL 的结构。

为什么 é 会变成两个编码?

URL 使用 UTF-8:é 是两个字节 C3 A9,每个字节写成 %XX。

探索更多分类