首页 › 开发工具 › URL编码解码工具

URL编码解码工具

在线完成 URL 编码与解码,可整体转义参数值(encodeURIComponent)或保留网址结构只转义非法字符(encodeURI),同时把查询串拆成参数名、参数值表格并标记重复出现的键。

处理方式

数据来源:RFC 3986(URI 通用语法)百分号编码与 WHATWG URL 标准

输入字符数54个
输入 UTF-8 字节数70字节
输出长度144字符
被转义字符数21个
长度变化+90字符
锚点(#)片段无

查询参数解析(共 4 组)

参数名参数值出现次数原始片段
q轻算 工具1 次q=轻算 工具
分类开发1 次分类=开发
page22 次(重复)page=2
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3D%E8%BD%BB%E7%AE%97%20%E5%B7%A5%E5%85%B7%26%E5%88%86%E7%B1%BB%3D%E5%BC%80%E5%8F%91%26page%3D2%26page%3D3

存在重复键:page,后端接收时通常只保留最后一次或解析为数组,需注意取值口径。 encodeURIComponent 会把 ? & # = / 一律转义,适合编码单个参数值;encodeURI 保留这些结构字符,适合编码整条网址。旧式 escape() 不编码 @ * + - _ . / 且对中文输出非标准的 %uXXXX,与 decodeURIComponent 不配对,标准早已废弃,不要再用它。

本页所有计算在浏览器内完成,输入内容不会被上传。

计算口径

百分号编码规则:UTF-8 字节序列中,除保留字符 A-Z a-z 0-9 - _ . ! ~ * ' ( ) 之外,每个字节写成 %XX(大写十六进制)。encodeURIComponent 额外转义 ; , / ? : @ & = + $ # 等结构字符;encodeURI 保留它们以维持网址骨架。解码端把 + 还原为空格后再解析 %XX,这也是表单提交(application/x-www-form-urlencoded)的约定。

使用说明

  • 拼接请求地址时,把参数值单独用 encodeURIComponent 处理,键名保持英文即可
  • 整条含中文路径的网址需要能直接访问时选 encodeURI
  • 排查参数丢失时看表格里的"出现次数",重复键与含 # 的值是最常见原因

常见问题

空格为什么有时是 %20 有时是 +?

query 部分用 application/x-www-form-urlencoded 约定把空格编成 +;路径部分必须用 %20。本工具解码时两种都还原为空格,编码时输出 %20(标准百分号编码)。

中文参数为什么到了后端变成乱码?

因为编码链路里出现了非 UTF-8 口径(例如 GBK 页面提交)或参数被转义了两次(%E8 变成 %25E8)。用本工具再点一次"解码"若结果里出现 % 说明之前被双重编码。

# 后面的内容需要编码吗?

需要转义空格与中文,但 # 本身不能编成 %23 以外的形式放在锚点位置——锚点不会随请求发到服务器。若参数值里含 #,必须编码为 %23,否则后半段会被当成锚点丢掉,结果里已单独提示。