跳到主要内容

URL 编解码

网址与中文互转,附带 URL 结构拆解与查询参数解析

两种范围可选:encodeURIComponent 用于参数值,encodeURI 用于整条网址粘贴完整 URL 自动拆解结构,并把查询串解析成可复制的表格能识别「二次编码」这个高频坑,并提示你多解一次
编码范围

按 encodeURIComponent 处理:斜杠、问号、& 等结构字符也会被编码,适合放进查询参数的值。

最后更新:2026-10-09

工具介绍

URL 里只能出现一小部分 ASCII 字符,中文、空格以及 ? & = 这类有特殊含义的符号都必须转义成 %XX 的形式。本工具提供编码与解码两个方向,并可选择「单个参数值」或「整条 URL」两种处理范围;粘贴一条完整网址时,还会顺手拆出协议、主机、路径、查询串与片段,并把查询参数列成表格。

功能特性

两种编码范围

encodeURIComponent 会把 / ? & = 一并编码,适合放进单个查询参数的值;encodeURI 保留这些结构字符,只编码中文与空格,适合整条网址。选错会导致链接失效,所以这里做成显式选择。

中文与空格处理

中文按 UTF-8 编码为多字节的 %XX 序列,空格编码为 %20。解码时按相反的规则还原,不会出现乱码。

URL 结构拆解

用浏览器原生的 URL 解析器(而非正则)拆出协议、主机、路径、查询串与片段。URL 的边界规则比正则能覆盖的复杂得多,原生解析才可靠。

查询参数解析

把查询串解析成键值表格,每个值可单独复制。会按表单约定把 + 视为空格,并支持直接粘贴整条 URL 自动截取查询部分。

怎么用

  1. 1

    选择方向

    「编码」把原文变成 %XX 形式,「解码」把 %XX 还原成可读内容。

  2. 2

    选择范围

    只处理一个参数的值时选「单个参数值」;要把整条含中文的网址转成可用链接时选「整条 URL」。

  3. 3

    粘贴并执行

    结果实时展示。若输入是一条完整网址,下方会同时出现结构拆解与查询参数表格。

  4. 4

    复制结果

    结果、各结构部分、每个查询参数都有独立复制按钮,按需取用。

参数说明

单个参数值(encodeURIComponent)
除 A-Z a-z 0-9 - _ . ! ~ * ' ( ) 之外全部编码,包括 / ? & = # 。用于拼接查询参数的值。
整条 URL(encodeURI)
额外保留 : / ? # [ ] @ ! $ & ' ( ) * + , ; = 这些结构字符,只编码中文与空格等非法字符。用于整条网址。
加号与空格
在查询串里 + 按表单约定表示空格,因此解析参数时会把 + 还原成空格;而编码时统一输出 %20,两者不冲突。

适用场景

  • 把含中文的搜索词拼进接口的查询参数
  • 还原后端日志里一串看不懂的 %E4%B8%AD%E6%96%87
  • 检查分享链接里的查询参数各是什么值,判断是否被篡改
  • 调试 OAuth 回调地址的 redirect_uri 是否需要转义
  • 把中文文件名转成可直接放进 URL 的形式
  • 排查链接失效原因:确认该用 encodeURI 的地方没有误用 encodeURIComponent

常见问题

关于这个工具,你可能会问

encodeURI 和 encodeURIComponent 有什么区别?

encodeURI 保留 :/?#[]@ 等用于分隔 URL 结构的字符,适合整条网址;encodeURIComponent 把这些也全部编码,适合单个查询参数的值。把整条网址用 encodeURIComponent 编码会让链接彻底失效,这是最常见的误用。

为什么空格有两种表示?

%20 是 URL 标准里的空格转义;而 + 是 HTML 表单提交时的约定。两者在查询串里都表示空格,但 + 只在这一个位置成立——在路径或参数值内部,+ 就只是普通的加号。

什么是二次编码?

对已经编码过的字符串再编码一次。原来 % 表示转义,再编码后 % 变成 %25,于是 %E4 就变成 %25E4。结果是出现 %2520 这类形态。本工具检测到会提示你,再解一次即可还原。

解码报错说百分号转义不合法是什么意思?

URL 里 % 后面必须紧跟两位十六进制数字。像 100%、%E4% 这种写法不符合规则,浏览器会直接抛错。遇到这种情况请检查是否是复制时被截断了。

可以一次编码多个参数吗?

可以。把键值对整体粘贴进来用「单个参数值」编码,或者先分别编码各值再手工拼装。工具下方的查询参数表格也能给出规范化后的查询串。

中文编码出来为什么这么长?

UTF-8 下一个汉字占 3 字节,每字节编码成 %XX 就是 3 个字符,合计 9 个字符。这是编码规则决定的固定开销。

URL 里的中文有什么问题?

RFC 标准只允许 URL 出现一部分 ASCII 字符,中文必须转义。现代浏览器显示时会自动把 %XX 还原成中文方便阅读,但地址栏里显示的其实是已编码形式。

处理过程会上传数据吗?

不会。全部编解码在浏览器内完成,不发送任何请求。