URL 编码解码工具
在线对 URL 和中文参数做百分号编码(URL Encode)与解码,解决链接里的中文、空格和特殊字符导致访问报错的问题
URL 编码解码工具是什么
对字符串做 URL 编码(百分号编码)和解码,编码规则有 5 种可选。链接参数里带中文、空格、&、= 时不编码就会被截断或解析错,拼接接口地址、构造跳转链接、写 Content-Disposition 文件名时都要用到它。
所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。
怎么用URL 编码解码工具
- 在「编码」卡片上方的输入框里粘贴要编码的字符串
- 在「编码类型」下拉框选规则:默认 URIComponent,另有 RFC3986URIComponent、RFC5987、URI、RFC3986URI
- 编码结果实时出现在下方只读框,点「复制」取走
- 要解码就切到页面下方的「解码」卡片,把 %XX 形式的文本粘贴进去
- 解码结果同样实时输出,点该卡片的「复制」按钮取走
示例
输入
在线工具&page=1输出
%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7%26page%3D1URIComponent 模式:中文转成 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 单独编码