URL 编码器 / 解码器

将 URL、查询字符串和特殊字符转换为百分比编码,或将百分比编码的文本还原为可读的 URL — 即时完成,直接在浏览器中运行。本工具集百分比编码器、百分比解码器、查询字符串编码器、查询字符串解码器和兼容 UTF-8 的 URL 编码转换器于一体,一个页面全搞定。

在输入框中粘贴 URL 或任意文本,选择编码或解码,并指定是处理单个 URL 组件还是完整 URL,然后复制结果。所有操作均在浏览器中本地运行,使用 JavaScript 原生 URL 函数,因此您的输入数据永远不会离开您的设备。

转换选项
选择是要编码还是解码,以及是处理单个 URL 组件(例如查询值)还是完整 URL。

组件模式将 / ? # & = 等保留字符进行百分号编码,使值在查询字符串或路径段中安全使用。

待编码的文本
输入要编码的文本或 URL。空格变为 %20,特殊字符进行百分号编码。
0 字符
编码输出
百分号编码结果,可安全用于 URL。
0 字符

这是一款私密的浏览器端 URL 编码器和解码器。它使用原生函数 encodeURIComponent、encodeURI、decodeURIComponent 和 decodeURI 安全处理 UTF-8 文本,不向任何服务器传输数据。

这个 URL 编码器和解码器有什么用?

URL 编码器将不能直接用于 URL 的字符转换为百分比编码序列。URL 解码器执行相反操作,将百分比编码文本还原为原始字符。本页面支持双向转换,适用于单个 URL 组件或完整 URL。

本工具使用四个标准 JavaScript 函数:

  • encodeURIComponent — 对单个 URL 组件(如查询参数的值)进行编码。
  • encodeURI — 对完整 URL 进行编码,同时保留具有结构意义的保留字符,如 : / ? # & =。
  • decodeURIComponent — 将单个 URL 组件解码还原为原始字符。
  • decodeURI — 在不触碰保留字符的情况下对完整 URL 进行解码。

所有转换均兼容 UTF-8,因此带重音符号的字母、表情符号以及非拉丁文字都能被正确处理。没有任何内容被上传或存储,也不发起任何 API 调用。

URL 编码示例

以下是 URL 编码在实际操作中的一些具体示例:

  • 空格变为 %20,因此「你好世界」编码后为 %E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C。
  • 查询值中的斜杠变为 %2F,因此 a/b 作为参数变为 a%2Fb。
  • 值中的问号变为 %3F,因此「什么?」变为 %E4%BB%80%E4%B9%88%3F。
  • 值中的 & 变为 %26,避免破坏周围的查询字符串。
  • 值中的 # 变为 %23,因此 c# 变为 c%23。
  • 非 ASCII 字符使用多字节 UTF-8 序列,例如 café 变为 caf%C3%A9(é 是两个 UTF-8 字节)。
  • 表情符号也使用多字节 UTF-8:😀 变为 %F0%9F%98%80。

将工具切换到解码模式,粘贴上述任意编码字符串,即可看到原始文本被精确还原。

URL 组件编码与完整 URL 编码的区别

选择正确的模式非常重要,因为两种编码器对保留字符的处理方式不同。

当编码要插入 URL 中的单个值时,请使用组件模式(encodeURIComponent / decodeURIComponent)— 例如查询参数的值、路径段或片段值。组件模式会对保留字符(: / ? # [ ] @ ! $ & ' ( ) * + , ; =)进行百分比编码,防止它们意外更改周围 URL 的结构。

当您已有完整的 URL(如 https://example.com/path?query=value#fragment),只想对不安全字符(如空格或非 ASCII 字符)进行转义,而不影响结构性保留字符时,请使用完整 URL 模式(encodeURI / decodeURI)。

一个常见错误是对本应作为查询参数的值使用 encodeURI。保留字符不会被编码,可能破坏周围的 URL。如有疑问,请用 encodeURIComponent 对每个查询值进行编码,再拼接完整 URL。

什么是百分比编码?

百分比编码(也称 URL 编码)是在 URL 中表示保留字符(具有结构意义)或根本不允许出现的字符的方法。每个不安全字节写作百分号后跟两位十六进制数字,例如空格写为 %20、斜杠写为 %2F、问号写为 %3F。

编码以字节为单位,而非直接以字符为单位。现代 URL 会先用 UTF-8 将字符转换为字节,因此一个带重音的字母可能产生两个百分比编码字节,一个表情符号可能产生四个字节。本工具始终使用 UTF-8,确保编码后的字符串与整个 Web 互操作。

百分比编码由 RFC 3986 定义。这里使用的原生 JavaScript 函数实现了该规范,因此在任何现代浏览器中用 encodeURIComponent 编码的值都能在任何地方用 decodeURIComponent 正确解码。

什么时候使用本工具

每当需要将文本安全地放入或取出 URL 时,本工具都大有用处。常见场景包括:

  • 在将文本粘贴到 API 请求、日志行或浏览器地址栏之前,对查询字符串文本进行编码。
  • 从请求日志或分析数据导出中解码 URL 参数,以读取原始值。
  • 通过解码来检查长编码 URL,确认实际传递的内容。
  • 在将 URL 分享到聊天、文档或 JSON payload 之前,对其中的特殊字符进行转义。
  • 学习百分比编码和 UTF-8 字节序列与字符的对应关系。

由于本工具完全在浏览器中运行,也适合处理不想提交到远程服务的敏感 URL(内部链接、令牌、签名 URL)。

URL 编码与 URL 清理的区别

URL 编码和 URL 清理是两种不同的操作,经常被混淆。

URL 编码(本工具)将字符转换为 URL 安全的百分比编码形式,并可逆转该操作。URL 结构保持不变,既不添加也不删除任何内容。

URL 清理(另一类工具)从 URL 中删除 utm_source、utm_medium、fbclid、gclid 等追踪参数及类似查询键,使结果链接不再包含追踪元数据。URL 清理会修改 URL 中的参数,而编码不会。

若要删除追踪参数,需要使用专门的 URL 清理工具。若要将文本编码或解码为百分比编码形式,本工具才是正确选择。

常见问题解答

URL 编码器和解码器是什么?

URL 编码器将 URL 中的保留字符或不安全字符转换为百分比编码序列(例如空格变为 %20)。URL 解码器执行反向操作,还原原始字符。本页面支持双向转换,适用于单个 URL 组件和完整 URL,全部在浏览器中完成。

什么是 URL 编码?

URL 编码是将 URL 中具有特殊意义或根本不允许出现的字符替换为百分比编码序列的过程。每个不安全字节写作百分号后跟两位十六进制数字。URL 编码也称百分比编码,由 RFC 3986 定义。

什么是百分比编码?

百分比编码是 URL 用来表示不安全或保留字符的编码方案。字符首先被转换为一个或多个字节(现代 URL 使用 UTF-8),每个字节写作百分号加两位十六进制值。例如,空格对应字节 0x20,写为 %20。

什么时候应该用 encodeURIComponent 而不是 encodeURI?

当编码要插入 URL 的单个值时,请使用 encodeURIComponent — 通常是查询参数的值、路径段或片段值。该函数会对 /、?、#、& 和 = 等保留字符进行百分比编码,防止其意外改变周围 URL 的结构。当您已有完整 URL,只想对不安全字符(如空格或非 ASCII 字符)进行转义而不影响结构性保留字符时,请使用 encodeURI。

%20 和 + 有什么区别?

两者都可以表示空格,但适用于不同场景。%20 是空格的标准百分比编码,在 URL 任意位置均有效。+ 仅在 application/x-www-form-urlencoded 数据中被解释为空格 — 通常是 HTML 表单提交的正文或部分旧系统生成的查询字符串。原生函数 decodeURIComponent 和 decodeURI 不会将 + 转换为空格,本工具遵循同样严格的行为:+ 将原样保留。如果您在解码表单数据且需要将 + 视为空格,请在解码前手动将 + 替换为空格。

本工具可以解码查询字符串吗?

可以。将已编码的查询字符串(或单个编码值)粘贴到输入框,将方向切换为解码。对于单个参数值,请使用组件模式;若要解码整个 URL,请使用完整 URL 模式。请注意,本工具不会将查询字符串拆分为键/值对 — 它只对您粘贴的文本中的百分比编码字符进行解码。

这个 URL 解码器支持 UTF-8 字符吗?

支持。原生 JavaScript 函数将百分比编码序列视为 UTF-8 字节,因此带重音的字母、表情符号和非拉丁文字都能被正确解码还原。例如 caf%C3%A9 解码为 café,%F0%9F%98%80 解码为 😀。如果序列不是有效的 UTF-8,解码器会报告输入格式错误,而非静默生成替换字符。

我的文本会上传到服务器吗?

不会。编码器和解码器完全在您的浏览器中运行,使用 JavaScript 原生 URL 函数。您的输入绝不会发送到服务器,也不会被存储或记录。关闭标签页即清除所有内容。因此,本工具也适合处理不想提交到远程服务的敏感 URL(内部链接、令牌、签名 URL)。

URL 编码和 URL 清理是一回事吗?

不是。URL 编码将字符在百分比编码形式与原始形式之间相互转换,不改变现有参数的内容。URL 清理是另一种操作,用于从 URL 中删除 utm_source、utm_medium、fbclid、gclid 等追踪参数。如果需要从链接中移除追踪器,请使用专门的 URL 清理工具;本页面只负责编码和解码。

为什么解码后的 URL 中仍有百分号?

如果原始 URL 经过了二次编码(双重编码),一次解码只能消除一层。例如,%2520 解码为 %20,再解码一次才变成空格。如果结果看起来仍是编码状态,请再次通过解码器处理。不属于有效转义序列的字面百分号(例如 abc%)属于无效百分比编码,解码器将报错而非猜测。

探索更多文本工具

免费在线工具,用于转换、编码和处理文本

大小写转换

转换文本大小写 — 大写、小写、标题格式等

摩尔斯电码翻译器

将文本转换为摩尔斯电码,反之亦然

莫尔斯电码音频解码器

从音频文件或麦克风解码莫尔斯电码

二进制翻译器

将文本转换为二进制,反之亦然

Base64 编码器/解码器

编码和解码Base64文本

Hex Converter

将文本转换为十六进制,反之亦然

ROT13 编码器/解码器

使用 ROT13 密码编码和解码文本

上标生成器

在支持的情况下将文本转换为 Unicode 上标。

下标生成器

将文本转换为支持的Unicode下标

删除线文字生成器

即时生成可复制粘贴的 Unicode 删除线文字

图片转Base64

将图片转换为Base64字符串和数据URI