URL 编码解码工具

在线对 URL 和中文参数做百分号编码(URL Encode)与解码,解决链接里的中文、空格和特殊字符导致访问报错的问题

URL 编码解码工具是什么

对字符串做 URL 编码(百分号编码)和解码,编码规则有 5 种可选。链接参数里带中文、空格、&、= 时不编码就会被截断或解析错,拼接接口地址、构造跳转链接、写 Content-Disposition 文件名时都要用到它。

所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。

怎么用URL 编码解码工具

  1. 在「编码」卡片上方的输入框里粘贴要编码的字符串
  2. 在「编码类型」下拉框选规则:默认 URIComponent,另有 RFC3986URIComponent、RFC5987、URI、RFC3986URI
  3. 编码结果实时出现在下方只读框,点「复制」取走
  4. 要解码就切到页面下方的「解码」卡片,把 %XX 形式的文本粘贴进去
  5. 解码结果同样实时输出,点该卡片的「复制」按钮取走

示例

输入

在线工具&page=1

输出

%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7%26page%3D1

URIComponent 模式:中文转成 UTF-8 百分号编码,& 和 = 也一起编码,避免被当成参数分隔符

常见问题

为什么我的链接在微信或某些 App 里打不开?

多半是参数里的中文或特殊字符没编码,被截断或二次转义了。只把参数值单独做 URL 编码再拼进链接,通常就好了。

空格什么时候是 %20 什么时候是 + ?

%20 是标准的百分号编码,+ 是 application/x-www-form-urlencoded(表单提交)里的写法。查询字符串里两者多数服务端都认,路径部分只能用 %20。

RFC5987 这一项是用来干什么的?

它是 HTTP 头部里 Content-Disposition 文件名的编码方式,比百分号编码宽松:| ` ^ 这三个字符会还原成原文,下载文件名里带中文时用它可以少一层转义。

编码两次会怎么样?

会得到双重编码,比如第一次的 %E4%B8%AD 再编一次变成 %25E4%25B8%25AD。解码也要对应解两次,混用是最常见的参数乱码来源。

我输入的网址会上传到服务器吗?

不会。编码和解码都在你的浏览器里用内置的 encodeURIComponent / decodeURIComponent 完成,文本不离开本机,也不记录历史。

小提示

  • 默认的 URIComponent 不编码 ! ' ( ) * 这五个字符;要严格按 RFC3986 传参就切到 RFC3986URIComponent,它会输出 %21 %27 %28 %29 %2A
  • 解码固定走 decodeURIComponent,只有一种实现:表单里的 + 不会被还原成空格,先把 + 换成 %20 再解
  • 整条链接用 URI 模式编码时 : / ? # 会保留,只有中文和空格被转义;参数值本身还是要用 URIComponent 单独编码

同类网页工具