Skip to content
简体中文

切换主题

// 工具 · 编码与转换

URL 编码 / 解码

把文字编码成网址可用的 %XX 形式,或把 %E4%B8%AD 这类串还原成可读文字。支持中文和 emoji、表单的“+”空格、被编码多次的链接,还能把查询参数拆成表格。

在你的设备上运行,不上传encodeURIComponent · encodeURIUTF-8多层解码

在上面输入或粘贴,结果实时更新。

01用哪种模式?

encodeURIComponentencodeURI
适合单个参数值、路径片段整条网址
不编码的字符A–Z a–z 0–9 - _ . ! ~ * ' ( )同左,再加 ; / ? : @ & = + $ , #
示例:a&b=c da%26b%3Dc%20da&b=c%20d
示例:中文%E4%B8%AD%E6%96%87%E4%B8%AD%E6%96%87

经验:自己拼查询参数 → 每个值用 encodeURIComponent;现成网址里只是有空格或中文 → 用 encodeURI。

相关工具:Base64 编码 / 解码 · 工具总览 →

常见问题

encodeURIComponent 和 encodeURI 有什么区别?

encodeURIComponent 除了 A–Z a–z 0–9 - _ . ! ~ * ' ( ) 以外全部编码,包括 / ? : @ & = + $ , #,适合单个参数值或路径片段。encodeURI 会保留这些网址结构字符,适合整条网址里只有空格、中文需要处理的情况;但如果参数值里本身有 & 或 =,用它会把查询串弄乱。

空格应该编码成 %20 还是 +?

路径和一般的百分号编码里空格是 %20。HTML 表单提交(application/x-www-form-urlencoded)把空格写成 +,很多后端也会把查询串里的 + 当空格。需要这种格式时勾选“+ 当空格”。真正的加号必须写成 %2B 才不会变成空格。

为什么链接被编码了两次(%25E4…)?

%25 就是编码后的“%”。已经编码过的字符串再被编码一次(比如经过跳转或追踪链接)就会出现。“全部解开”会反复解码直到不再变化(最多 10 层),并告诉你解了几层。

提示“非法 % 序列”是什么意思?

每个 % 后面必须跟两位十六进制数,而且解出的字节要是合法 UTF-8。单独的 %(比如“100%”)、%zz、或被截断的中文(%E4%B8 少了第三个字节)都无法解码。工具会给出位置,方便你修正或先把这部分编码。

我输入的内容会上传吗?

不会。全部在本页 JavaScript 里运行;输入内容不会发到任何地方,不进地址栏、Cookie、本地存储,也不进访问统计。