URL编码解码工具

将文本编码,使其可以放入网址;或把已编码的链接解码,读出其中的文本和查询参数。您粘贴的内容不会离开浏览器。

免费 在浏览器中运行 核对于2026年11月10日星期二

需要编码的文本,或需要解码的已编码文本或链接。

操作
范围

单个值用于查询值或路径的一部分;完整网址则保留 : / ? & 和 = 字符。

适用于 HTML 表单写出的查询字符串:+ 读作空格,空格写作 +。

结果

结果
查询参数

此工具在您的浏览器中运行。您输入的内容不会发送给我们。

使用方法

  1. 将文本或链接粘贴到文本或网址中。
  2. 在操作中选择编码或解码。
  3. 若为单个值,例如搜索词,请将范围保持为单个值;若为整个链接,则选择完整网址。
  4. 查看结果;若文本是带查询的链接,还可查看查询参数表。

百分号编码的作用

网址只能包含一小部分字符。其他每个字符都要写作一个 % 号加两位十六进制数字,对应其 UTF-8 形式中的每个字节。因此汉字“你”会变为 %E4%BD%A0,空格则变为 %20。规则见 RFC 3986 第2.1节。

你  →  UTF-8 bytes E4 BD A0  →  %E4%BD%A0
  • 使用单个值编码时,只保留 A 至 Z、a 至 z、0至9,以及 - _ . ! ~ * ' ( ) 原样不变。
  • 解码会把每个有效的 %XX 还原为其字节,再把字节还原为它们所构成的字符。

单个值还是完整网址

单个值也会转义分隔符(: / ? # & = 和 +),因此查询值不会破坏网址的结构。完整网址则保留这些分隔符,使链接保持其形态。解码完整网址时,代表分隔符的转义(例如 %2F)仍保持转义状态,因此链接的含义不变。

表单编码与 + 号

HTML 表单把空格写作 +,把加号写作 %2B。因此在表单写出的查询字符串中,+ 表示空格。选项表单编码读取并写出这一规则。关闭时,+ 保持为加号,与 RFC 3986 的规定一致。

解码拒绝什么

  • 后面不是两位十六进制数字的 % 号,例如 %E0%A4%A 的末尾。
  • 无法组成有效 UTF-8 的转义,例如单独的一个字节 %FF。
  • 残缺的字符,例如表情符号的一半,无法编码。

计算示例:搜索链接

用单个值对 Ankara & İzmir? 进行编码,结果为 Ankara%20%26%20%C4%B0zmir%3F。空格、和号、大写字母 İ(UTF-8 中占两个字节)以及问号都被转义了。

用完整网址并勾选表单编码对 https://example.com/ara?q=%C3%A7ay+kahve&page=2进行解码,结果为 https://example.com/ara?q=çay kahve&page=2。该查询有两个参数:q 为 çay kahve,page 为2。

输入 结果
Ankara & İzmir?(单个值,编码) Ankara%20%26%20%C4%B0zmir%3F
https://example.com/ara?q=%C3%A7ay+kahve&page=2(解码) https://example.com/ara?q=çay kahve&page=2

常见问题

encodeURI 与 encodeURIComponent 有什么区别?

encodeURIComponent 转义所有分隔符,因此适用于查询字符串中的单个值。encodeURI 保留使网址具有结构的字符,例如 : / ? # & 和 =,因此适用于整个链接。页面上的“单个值”对应前者,“完整网址”对应后者。

为什么空格在一处变为 %20,在另一处却变为 +?

%20是空格的标准转义,在网址的任何位置都有效。+ 只在表单编码中表示空格,即在 HTML 表单写出的查询字符串中。当链接来自表单时,请勾选“表单编码”。

为什么 %E0%A4%A 会被拒绝?

转义 %E0 开始一个三字节的字符,但文本在 %A 之后就结束了,转义并不完整。每个 % 号都需要两位十六进制数字,且每个字节都必须属于一个完整的 UTF-8 字符。

我的链接会被发送到服务器吗?

不会。编码和解码都由您的浏览器完成,因此携带令牌或私密数据的链接只留在您的设备上。

为什么解码后的参数中仍有加号?

关闭“表单编码”时,+ 保持为加号,这与 RFC 3986 的定义一致。许多网页表单把空格写作 +,因此请勾选该选项,以按表单的本意读取这些链接。

资料来源

数据和文字最近核对于2026年11月10日星期二。

我们使用必要的 Cookie 来运行网站。经您同意后,Google 还会使用广告 Cookie 展示个性化广告。如果您拒绝,仍会看到广告,但广告不会个性化。