// 工具 · 编码与转换
URL 编码 / 解码
把文字编码成网址可用的 %XX 形式,或把 %E4%B8%AD 这类串还原成可读文字。支持中文和 emoji、表单的“+”空格、被编码多次的链接,还能把查询参数拆成表格。
在你的设备上运行,不上传encodeURIComponent · encodeURIUTF-8多层解码
在上面输入或粘贴,结果实时更新。
查询参数 (按表单规则解码:+ 是空格)
| # | 参数名 | 值 |
|---|
01用哪种模式?
| encodeURIComponent | encodeURI | |
|---|---|---|
| 适合 | 单个参数值、路径片段 | 整条网址 |
| 不编码的字符 | A–Z a–z 0–9 - _ . ! ~ * ' ( ) | 同左,再加 ; / ? : @ & = + $ , # |
| 示例:a&b=c d | a%26b%3Dc%20d | a&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、本地存储,也不进访问统计。