URL 编码·解码

在任一边输入,另一边立即更新。损坏的 %、二次编码、GBK 编码的旧网址也能读。

功能

  • “原文”和“编码结果”两个框联动,在任一边输入,另一边立即更新
  • 组件(encodeURIComponent)、完整 URL(encodeURI)、表单(空格为 +)三种方式,还可以只编码中文等非 ASCII 字符
  • 遇到 %E4%BD 这样被截断的字符、%ZZ 或单独的 % 也不会出错,能读的照常解码,并标出无法解码的位置和原因
  • 识别二次编码(%2520),一键再解码一次
  • 除 UTF-8 外,还支持 GBK、Shift_JIS、EUC-JP 等旧编码网址的编码和解码
  • 把 URL 拆成协议、主机、路径、查询参数,显示中文域名的 Punycode,编辑查询参数表后立即重新拼接 URL

使用场景

查看统计后台里的网址

把 %E5%8C%97%E4%BA%AC 这样的搜索词还原成中文。

编写接口请求

按 encodeURIComponent 的方式编码查询参数,再粘贴到代码里。

旧网址出现乱码

切换到 GBK,读取老网站用 GBK 编码的网址。

整理分享链接

用表格查看长网址的参数,删掉跟踪参数后重新拼接。

隐私

输入的文字和 URL 只在浏览器中转换,不会发送到任何地方。只有编码方式和字符编码的设置会保存在本设备(浏览器存储)中,方便下次使用;输入的内容不会保存。

常见问题

为什么网址里的中文会变成 %E4%BD%A0 这样?

网址中只能使用英文字母、数字和少数符号。中文要先转成 UTF-8 字节,再把每个字节写成“%”加两位十六进制数。“你”是 E4 BD A0 三个字节,所以写成 %E4%BD%A0。

“组件”和“完整 URL”有什么区别?

“组件”(encodeURIComponent)会把 & = / ? # 也编码,适合放进网址中的一部分,比如查询参数的值。“完整 URL”(encodeURI)保留这些分隔符,适合整体编码一个网址。如果值里有 &,用“完整 URL”就无法和分隔符区分。

空格应该是 %20 还是 +?

两种都有。表单提交(application/x-www-form-urlencoded)把空格写成 +,其他场合一般用 %20。解码时,只有表单数据中的 + 才表示空格。拿不准时用 %20 更稳妥。

解码后出现乱码怎么办?

较老的中文网站常用 GBK 编码网址,例如“你”在 GBK 中是 %C4%E3。按 UTF-8 解码就会失败或出现乱码。切换字符编码即可读取;不符合 UTF-8 的部分会标出位置。

%2520 是什么意思?

这是被编码了两次的结果。把空格的 %20 再编码一次,% 会变成 %25,于是成了 %2520。本工具发现后会提示,点“再解码一次”即可还原。

输入的网址会被上传吗?

不会。所有转换都在你的浏览器中完成,即使网址里含有令牌等信息也不会外传。

相关工具

编码方式

用于查询参数的值或路径的一部分。& = / ? # 也会编码(与 encodeURIComponent 相同)。

较老的中文网站的网址可能使用 GBK 编码。解码后出现乱码时,可以切换试试。

被编码的字符

    没有需要编码的字符。

    所有转换都在本浏览器中完成,输入的文字和 URL 不会发送到任何地方。

    所选字符的字节

    显示“原文”框中光标所在的字符。

    输入原文后,这里会显示每个字符的字节。

    拆分 URL

    输入 URL 后,会拆分显示协议、主机、路径、查询参数和片段。