跳至主要内容
短.be

URL 编码 / 解码工具

输入 URL 或任意文本,即可将其转换为百分号编码 (编码),或还原为可读的文字 (解码)。

您的输入仅在浏览器内处理,不会发送到服务器。

转换方式

与 encodeURIComponent 相同。/ ? & = # 等符号也会全部转换,适用于查询参数的值等嵌入 URL 内部的字符串。

这个工具能做什么

URL 中不能直接包含中文或空格等字符,需要转换为 %E4%B8%AD 这样的百分号编码 (URL 编码)。本工具可在浏览器内即时完成字符串的编码与解码。

编码有两种方式。「部分字符串」会转换包括 / ? & = # 在内的所有保留符号,适用于将搜索关键词等作为查询参数的值嵌入 URL。「完整 URL」会保留构成 URL 结构的符号,适用于将含中文的完整 URL 整理成便于分享的形式。

解码功能可将含百分号编码的 URL 还原为可读形式,便于查看邮件或日志中出现的长编码 URL 的实际内容。

使用方法

  1. 选择转换类型

    先选择要进行的操作。若要将字符串嵌入 URL 的一部分,选择「编码 (部分字符串)」;若要在保留结构的同时整理整个 URL,选择「编码 (完整 URL)」;若要把百分号编码还原为可读字符,选择「解码」。

  2. 输入要转换的字符串

    将 URL 或文本粘贴到输入框中。即使字符串含有空格或中文,也会按所选模式即时转换。

  3. 查看结果并复制

    结果栏会随输入自动更新。用复制按钮获取结果,即可直接粘贴到链接或查询参数的值中。

  4. 需要时切换模式并对比

    如果结果与预期不符,可切换转换类型。对比符号是否被转换、URL 结构是否保持完整,再选择适合用途的模式。

百分号编码的工作原理

什么是百分号编码

URL 中能直接使用的字符仅限字母、数字和部分符号。空格或中文等无法直接放入的字符,会被替换为百分号编码,即把该字符的每个字节写成 % 加两位十六进制数的形式。

例如空格会变成 %20,一个中文字符在 UTF-8 下占三个字节,写作 %E4%B8%AD 这样的形式。解码则相反,它读取百分号表记并还原为原始字符。

「部分字符串」与「完整 URL」的区别

「部分字符串」与 encodeURIComponent 相同,会转换包括 / ? & = # 在内的所有分隔符。即使值中含有这些符号,也会被当作一个完整的值,而不会被误认为分隔符。

「完整 URL」与 encodeURI 相同,会保留斜杠、问号、冒号等分隔符,只转换空格、非英文字符和部分符号。它适合在不破坏以 https:// 开头的 URL 结构的前提下,将其整理成便于分享的形式。不过,如果对已经编码过的 URL 再编码一次,就会出现 %20 变成 %2520 这样的双重编码,因此请对尚未编码的 URL 使用。

编码与解码可以互相还原

编码后的字符串,只要按相同规则解码,就能完整还原为原始字符串。转换本身不会丢失信息。

不过解码的前提是每个 % 后面都跟着两位十六进制数。中途被截断的 URL,或含有裸露 % 的字符串属于无效表记,无法还原并会报错。

常见问题

「部分字符串」和「完整 URL」如何选择?

取决于字符串在 URL 中的位置。若要嵌入 URL 内部 (如查询参数的值),请选「部分字符串」;若要转换以 https:// 开头的完整 URL,请选「完整 URL」。

为什么解码时会出错?

如果 % 后面没有紧跟两位十六进制数字,则不是合法的百分号表示,无法还原。常见于中途被截断的 URL,或含有未编码的 % 符号的字符串。

输入的内容会发送到服务器吗?

不会。所有转换都在您的浏览器内完成,输入内容不会离开您的设备。

我不小心把一个 URL 编码了两次。还能还原吗?

通常可以,只要解码两次。二次编码时 % 本身会变成 %25,所以先解码一次把 %25 还原为 %,再解码一次即可得到原始字符串。

为什么用「部分字符串」模式编码整个 URL 后,链接打不开?

对完整 URL 使用「部分字符串」模式,会连 https:// 中的 :// 也一起转换,从而破坏链接结构。整理完整 URL 时请选择「完整 URL」,「部分字符串」仅用于查询参数的值等局部内容。

相关术语

这个工具对您有帮助吗?