⌘K 切换工具
ENCODE & DECODE

URL 编码 / 解码

使用百分比编码对URL组件进行编码和解码。

local
url-encode
§01 关于此工具

概述

百分号编码把不安全或者保留的字符表示成 %XX 形式的十六进制转义, 让它们可以安全地待在 URL 里。这个工具封装了浏览器的原生函数:组件模式用 encodeURIComponent / decodeURIComponent,Whole URI 模式用 encodeURI / decodeURI, 后者会保留 :/?& 这类结构分隔符。

分不清这两个模式是最常见的出错来源。把一整条 URL 丢进组件模式,:// 会被转义成 %3A%2F%2F,链接就废了;反过来,把一个本身包含 & 的参数值丢进整条 URI 模式, 这个 & 会被原样留下,于是参数在服务端被提前截断。

使用方法

  1. 用模式标签选择 EncodeDecode
  2. 不勾选 Whole URI (encodeURI) 就是编码单个组件(查询参数值、路径片段);勾选它则处理一整条 URL 而不破坏它的分隔符。
  3. Input 里输入或粘贴内容——Result 框随着你的输入更新。

示例

  • 组件编码:a b&c=1a%20b%26c%3D1
  • 整条 URI 编码:https://example.com/?q=a bhttps://example.com/?q=a%20b://?= 都留了下来)
  • 解码:caf%C3%A9café

说明

对已经编码过的字符串再编码一次会造成双重转义(%20 变成 %2520), 这是链接失效的常见原因。非 ASCII 输入按 UTF-8 字节编码, 所以一个字符可能展开成好几段 %XX。如果拿不准一段文本是否已经编码过, 先做一次解码看结果有没有变化,再决定要不要编码。

FAQ
我粘贴进来的内容会被上传吗?
不会。编码和解码完全在浏览器内通过原生的 encodeURIComponent、encodeURI、decodeURIComponent 和 decodeURI 函数完成,不向任何服务器发送数据。
什么时候该勾选 Whole URI 而不是用默认的组件模式?
对查询参数这类单个值,用组件模式(默认)——它会编码 /、?、& 和 = 这些保留字符。当你手上是一整条 URL 并且想保住它的结构时,勾选 Whole URI;encodeURI 会放过这些分隔符,只转义在 URI 里非法的字符。
为什么解码有时会失败并报错?
百分号后面必须跟两个十六进制数字。像 %ZZ 或者结尾孤零零的一个 % 都构成畸形转义,decodeURIComponent 会抛异常——工具会显示 "Invalid input for decoding" 而不是给出结果。