URL 编码 / 解码工具
输入 URL 或任意文本,即可将其转换为百分号编码 (编码),或还原为可读的文字 (解码)。
您的输入仅在浏览器内处理,不会发送到服务器。
这个工具能做什么
URL 中不能直接包含中文或空格等字符,需要转换为 %E4%B8%AD 这样的百分号编码 (URL 编码)。本工具可在浏览器内即时完成字符串的编码与解码。
编码有两种方式。「部分字符串」会转换包括 / ? & = # 在内的所有保留符号,适用于将搜索关键词等作为查询参数的值嵌入 URL。「完整 URL」会保留构成 URL 结构的符号,适用于将含中文的完整 URL 整理成便于分享的形式。
解码功能可将含百分号编码的 URL 还原为可读形式,便于查看邮件或日志中出现的长编码 URL 的实际内容。
使用方法
选择转换类型
先选择要进行的操作。若要将字符串嵌入 URL 的一部分,选择「编码 (部分字符串)」;若要在保留结构的同时整理整个 URL,选择「编码 (完整 URL)」;若要把百分号编码还原为可读字符,选择「解码」。
输入要转换的字符串
将 URL 或文本粘贴到输入框中。即使字符串含有空格或中文,也会按所选模式即时转换。
查看结果并复制
结果栏会随输入自动更新。用复制按钮获取结果,即可直接粘贴到链接或查询参数的值中。
需要时切换模式并对比
如果结果与预期不符,可切换转换类型。对比符号是否被转换、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」,「部分字符串」仅用于查询参数的值等局部内容。
相关术语
这个工具对您有帮助吗?