← 返回工具列表

URL 编码 / 解码

对 URL 参数值进行百分号编码,或用 + 表示表单空格。本地解码 UTF-8 转义,不用于编码整条 URL。

编码解码即时返回

Input

运行参数

Output

运行结果

填写左侧参数并运行▌

编解码 URL 参数值

URL 编码(百分号编码)把 URL 中不允许直接出现的字符转成 % 加十六进制的形式:空格变成 %20,中文会先按 UTF-8 拆成字节再逐字节编码,所以“中”会变成 %E4%B8%AD。解码则把这个过程反过来。编码在浏览器本地完成,贴带参数的完整链接也没有隐私顾虑。

分享链接与回调参数的编码

拼带中文或特殊字符的分享链接、落地页参数、回调地址时,不编码的参数里的 &、=、空格会直接破坏 URL 结构。做 SEO 或数据分析时,解码一大串 %E4%B8%AD 形式的日志参数才能看懂用户到底搜了什么。调试接口 400 错误时,也常常是某个参数忘了编码。

百分号编码、空格与保留字符

encodeURIComponent 和 encodeURI 不是一回事:前者把 / : ? & = 都编码,适合参数值;后者保留这些 URL 结构字符,适合编码整个地址。给参数值用了后者,值里的 & 还是会把参数截断。另一个经典坑是 query 里的 +:在表单编码规则里 + 表示空格,但标准 URL 里 + 就是加号本身,两端规则不一致时会多出或丢失空格。

编码使用 encodeURIComponent,会保留 !、单引号、括号和 *,因此不是用于请求签名的严格 RFC 3986 规范化器。请核对接收 API 的具体编码要求。

应该编码整个 URL,还是单个参数值?

请分别编码每个参数值。编码整个 URL 也会转义 : / ? 和 &,改变原有结构。表单模式用 + 表示空格,解码时将 + 当作空格;百分号模式用 %20 表示空格,解码时保留字面的 +。