URL 编解码

工具简介

URL 中只能安全出现 ASCII 字母、数字和少量符号,像空格、中文、& 这样的字符如果原样出现,会被浏览器或服务器误判为分隔符甚至直接报错,因此需要通过百分号编码(Percent-Encoding)转换成安全形式。

本工具基于浏览器原生的 encodeURIComponent / decodeURIComponent 提供双向转换:输入任意文本,编码后得到可安全拼接进 URL 的字符串;粘贴已编码的字符串,解码还原出原文,整个过程无需联网。

使用说明

  1. 在上方文本框输入需要处理的文本或已编码的 URL 片段
  2. 点击"编码 Encode"将文本转换为百分号编码形式
  3. 点击"解码 Decode"将编码后的字符串还原为可读文本
  4. 结果显示在下方只读文本框,点击"复制结果"一键复制
  5. 点击"清空"重新开始下一次转换

常见问题

encodeURI 和 encodeURIComponent 有什么区别?

encodeURI 用于编码整个 URL,会保留 : / ? & = 等 URL 结构字符不转义;encodeURIComponent 用于编码 URL 中的某一段参数值,连 : / ? & = 也会一并编码,本工具采用后者。

空格应该编码成 %20 还是 +?

两者都存在:RFC 3986 标准的百分号编码把空格转成 %20(encodeURIComponent 采用此规则);而 application/x-www-form-urlencoded 表单编码习惯把空格转成 +,两者不可混用。

中文在 URL 中会被编码成什么样?

中文先按 UTF-8 编码为字节,再对每个字节做百分号编码,一个汉字通常占 3 字节,编码后变成 9 个字符,例如"中"会被编码为 %E4%B8%AD。

什么情况下需要编码两次?

当编码后的字符串会作为另一个 URL 的参数整体传递时(如短链接跳转、redirect 重定向参数),需要二次编码防止歧义;若发现解码结果里还残留 % 开头的片段,说明需要再解码一次。