PixConvert

免费 URL 编码与解码工具

使用这款免费的 URL 编码与解码工具,可将文本百分号编码用于链接,也可把 %20 形式的字符串还原为文本。默认模式适用于查询值,完整 URI 模式适用于整条链接。

如何编码或解码 URL

1

选择模式。

选择编码或解码,只有在处理整条链接而不是单个值时,才勾选完整 URI 模式。

2

粘贴并运行。

把文本或已编码的字符串粘贴到输入框中,然后点击编码或解码。编辑文本或更改模式后,请再次点击按钮。

3

复制结果。

点击复制可把输出放入剪贴板,或点击交换把它移到输入框,并用相反的模式运行以进行检查。

常见问题

关于百分号编码、空格、特殊字符和两种模式的解答。

什么是 URL 编码?

URL 编码也叫百分号编码,它会把链接中不安全或具有特殊作用的字符替换为 % 加两位十六进制数字。空格变为 %20,& 变为 %26。ASCII 之外的字母会先转换为 UTF-8 字节,因此 é 变为 %C3%A9。

URL 中的 %20 是什么意思?

%20 是编码后的空格。20 是空格字符的十六进制代码,所以名为 my file.pdf 的文件在链接中会显示为 my%20file.pdf。把链接粘贴到「解码」标签页,就能把每个 %20 还原为空格。

encodeURI 和 encodeURIComponent 有什么区别?

encodeURIComponent 用于编码单个值,会把 : / ? # & 和 = 转成 % 代码。encodeURI 用于编码整个 URL,不会改动这些字符。本工具默认使用 encodeURIComponent,勾选完整 URI 模式时使用 encodeURI。

为什么空格有时显示为 +,有时显示为 %20?

HTML 表单会把空格作为 + 发送(application/x-www-form-urlencoded 格式),而百分号编码使用 %20。本工具始终输出 %20。解码时它会把 + 保留为加号,所以解码表单数据时,请先把每个 + 换成空格。

URL 中哪些字符需要编码?

在参数值内部,除了 A 到 Z、a 到 z、0 到 9 以及 - _ . ~ 之外,其他字符都应编码。/ ? # & = 和 + 等保留字符作为链接结构使用时没有问题,但在值内部必须编码。默认模式还会保持 ! ' ( ) * 不变。

URL 编码和 Base64 是一回事吗?

不是。URL 编码只会把不安全的字符替换为 %XX 代码,字母和数字仍然可读。Base64 则用 64 个字符的字母表重写全部数据,体积会增加约三分之一。如果要处理文件和二进制数据,请使用 Base64 编码器。

什么时候应该使用完整 URI 模式?

当你有一个包含空格或非 ASCII 字母的完整链接,并希望它仍然可以点击时,请使用该模式。它会保留 :// / ? & = 和 # 的位置不变。如果你要编码的是即将放进链接里的某个值,例如搜索词或重定向 URL,请不要开启。

解码时为什么会出现「URI malformed」?

输入中有一个 % 后面没有跟两位十六进制数字,例如 100%;或者某个代码被截断,如 %E0%A4%A;又或者包含不是有效 UTF-8 的字节,比如旧版 Latin-1 系统产生的 %E9。修正或删除这部分内容后,再重新解码即可。

如何修复 %2520 这样的双重编码 URL?

%2520 表示 %20 又被编码了一次,其中的 % 变成了 %25。先解码一次得到 %20,再把输出复制回「解码」标签页的输入框,然后再解码一次就能得到空格。交换按钮做不到这一点,因为它会切换到编码模式。

如何在 JavaScript 中解码 URL?

单个值请调用 decodeURIComponent(value),整条链接请调用 decodeURI(url)。本工具运行的正是这两个函数,所以输出结果与你的代码一致。请把调用包在 try/catch 中,因为损坏的 % 代码会抛出 URIError。

我粘贴的文本会被发送到别处吗?

不会。编码和解码都在你的浏览器中完成,你的文本不会发送给 PixConvert。在线上网站,统计分析会记录「复制」等点击操作、一次运行的耗时,以及解码失败时的错误文本,例如 URI malformed。

支持两种模式的 URL 编码与解码工具

可对单个查询值或整条链接进行编码或解码,支持任何语言的 UTF-8,还有交换按钮反转结果,以及一键复制。

URL 编码器将 C++ & C# café 转换为 C%2B%2B%20%26%20C%23%20caf%C3%A9,并显示每个字符及其 % 编码

对查询值和文本进行百分号编码

默认模式会编码所有可能破坏链接的字符,包括 & = ? / # 和空格,让值在查询字符串中保持安全。空格变为 %20,é 变为 %C3%A9。

  • 空格变为 %20,而不是 +
  • 重音字母、CJK 和 emoji 使用 UTF-8 字节
  • 非保留字符保持原样
立即试用
完整 URI 模式下的 URL 编码器:a b/?q=café 变为 a%20b/?q=caf%C3%A9,而 : / ? & = # 和 + 保持不变

适用于整条链接的完整 URI 模式

勾选完整 URI 模式即可编码一条完整的链接。它会保留 :// / ? & = 和 # 的位置不变,并对空格、重音字母和其他不安全字符进行编码,因此 a b/café 会变成 a%20b/caf%C3%A9。

  • 保留 :/?&=# 和 + 的位置不变
  • 默认关闭,运行前请先勾选
  • 完整 URI 解码会保留 %2F 和 %23 的编码
立即试用

私密、免费、免注册

无需账号。你粘贴的文本在浏览器中完成编码,不会到达我们这里。统计分析只记录「复制」等点击操作和一次运行的耗时,绝不会记录你粘贴的内容。

一键交换

交换会把输出移到输入框,在编码和解码之间切换并立即运行,方便你检查编码后的值能否还原为原文。

支持查询字符串

一次只编码一个值,例如带有 & 或 = 的搜索词,然后把它粘贴到链接中 = 的后面。如果对整个查询字符串编码,其中的 & 和 = 会被转成代码。

保留换行和空格

换行符变为 %0A,制表符变为 %09,首尾空格变为 %20,因此多行文本和带填充空格的值在解码后能完全还原。

何时需要进行 URL 编码

只要用户提供的文本要放入 URL,就需要进行 URL 编码。

查询参数

在把搜索词、筛选值和表单输入添加到链接之前先进行编码,这样 &、= 和 # 等字符就不会把查询字符串截断。

  • 安全编码 C++ & C# 这样的搜索词
  • 避免单个值中的 & 和 = 破坏链接
  • 把空格转为 %20,用于邮件和文档中的链接

重定向 URL

在把完整的回调链接作为 redirect_uri 或返回 URL 传递之前,先用默认模式编码,这样其中的 :// / ? 和 & 都会保留在同一个参数内。

  • 一步编码 OAuth 的 redirect_uri 值
  • 把返回 URL 嵌入登录链接
  • 解码重定向参数,查看它指向哪里

API 开发

解码日志、webhook 和查询字符串中的百分号编码值以便阅读,或者为你在 curl 或脚本中手写的 API 调用编码测试值。

  • 查看服务器日志和 webhook 中的编码值
  • 为手写的 curl 命令编码测试值
  • 发现参数中像 %2520 这样的双重编码