URL编码解码工具 - 在线urlencode/urldecode三种规则详解(免费)
🌟 为什么一条链接里会有 %E6%98%9F%E7%82%B9 这样的东西
把网址发给别人时,你多半见过链接里突然冒出 %20、%E6%98%9F 这类”乱码”。这不是乱码,而是 URL 百分号编码(Percent-Encoding):URL 协议规定,中文、空格、以及 &、=、? 等特殊字符不能直接出现在地址里,必须先转成 %XX 的形式才能安全传输。
问题在于,“编码”这件事有不止一种做法。同样一个空格,有时变成 %20,有时变成 +;同样一条 http://,用一种规则编码会原样保留,用另一种会被编成 http%3A%2F%2F。选错规则,接口就报错、参数就错位。
星点 URL 编码解码工具 把三种主流编码规则放进同一个页面,支持双向切换、一键复制、交换输入输出,让你一眼看清”用哪种规则会得到什么结果”。
🚀 怎么用(详细步骤)
- 打开 URL 编码解码工具;
- 在输入框粘贴需要编码或解码的内容,或点击”示例”快速体验;
- 选择编码规则:
encodeURIComponent/encodeURI/表单编码; - 选择方向:“编码” 或 “解码”;
- 结果即时显示在输出框,点击”复制”即可使用;
- 需要反复核对时,点击”交换”把输出变成新的输入。
输入即计算(防抖),改一个字结果立刻更新,不需要点任何”提交”按钮。
🔍 三种编码规则到底有什么区别
这是这个工具最核心的内容,也是很多人用错编码的根源。三者的区别一句话概括:
| 规则 | 是否编码 : / ? # @ & = | 空格怎么处理 | 适用场景 |
|---|---|---|---|
| encodeURIComponent | 编码 | 编成 %20 | 编码单个参数值 |
| encodeURI | 保留 | 编成 %20 | 编码整条 URL |
| application/x-www-form-urlencoded | 编码 | 编成 + | HTML 表单提交 |
encodeURIComponent:给”参数值”用的
它会把 : / ? # @ & = + 这些字符全部编码,因此适合编码单个参数的值,避免值里的特殊字符破坏 URL 结构。
举个例子,你想把参数 q 的值设为 a/b?c:
- 若直接拼接成
?q=a/b?c,第二个?会被解析成新的查询分隔符,参数就错了; - 用 encodeURIComponent 编码后得到
q=a%2Fb%3Fc,/变%2F、?变%3F,结构正确。
encodeURI:给”整条 URL”用的
它会保留 : / ? # @ & = 等 URL 结构字符,只编码真正非法的字符(中文、空格等),适合编码整条 URL。
如果你对整条 https://www.xingdian.net/app/url/encode/ 做 encodeURIComponent,会得到 https%3A%2F%2Fwww.xingdian.net%2Fapp%2Furl%2Fencode%2F,冒号和斜杠全被编掉;而 encodeURI 会原样保留 :// 和路径的 /。
表单编码:空格变成 +
application/x-www-form-urlencoded 在 encodeURIComponent 的基础上,额外把空格编码为 +,这是 HTML 表单提交的约定。浏览器原生表单 method="post" 且不带文件上传时,默认就用这种编码。
🧮 编码到底是怎么算出来的
理解编码原理,能帮你排查”为什么编出来是这个”。
百分号编码的规则很简单:把字符转成 UTF-8 字节,每个字节写成 % + 两位十六进制大写形式。
中文怎么编
中文按 UTF-8 编码为多个字节,再逐字节做百分号编码。例如”星”的 UTF-8 字节是 E6 98 9F,所以:
星 → %E6%98%9F星点 → %E6%98%9F%E7%82%B9空格怎么编
- 普通百分号编码下,空格是
%20(ASCII 0x20); - 表单编码下,空格是
+。
保留字符
A-Z a-z 0-9 以及 - _ . ~ 这些字符是”非保留字符”,编码后原样保留,不会被转换。
🧪 对照示例
| 原始内容 | encodeURIComponent | encodeURI | 表单编码 |
|---|---|---|---|
星点 | %E6%98%9F%E7%82%B9 | %E6%98%9F%E7%82%B9 | %E6%98%9F%E7%82%B9 |
a b | a%20b | a%20b | a+b |
a/b?c | a%2Fb%3Fc | a/b?c | a%2Fb%3Fc |
http://a.com | http%3A%2F%2Fa.com | http://a.com | http%3A%2F%2Fa.com |
name=x&y | name%3Dx%26y | name=x&y | name%3Dx%26y |
把这个表在 URL 编码解码工具 里逐个验证一遍,三种规则的区别就彻底记住了。
🔒 解码:容错、不崩溃
解码方向同样支持三种规则,并且对非法序列做了容错:遇到无法解码的片段,工具会尽量解出合法的 %XX 序列,无法处理的部分原样保留并给出提示,不会因为一条坏数据就整个崩溃。
比如输入 %E6%98%9F%zz,工具会解出 星,保留 %zz 并提示,而不是报错中断。
⚠️ 常见错误与排查
| 现象 | 可能原因 | 处理 |
|---|---|---|
整条 URL 里的 : / 被编成 %3A %2F | 对整条 URL 用了 encodeURIComponent | 换 encodeURI |
空格变成了 + | 用了表单编码 | 改用 encodeURIComponent / encodeURI 得到 %20 |
参数值里的 & 导致参数错位 | 参数值没编码 | 对值用 encodeURIComponent |
| 中文解码后乱码 | 原始数据不是 UTF-8 | 确认源编码为 UTF-8 |
解码后出现 %zz 这样的残留 | 输入本身是非法序列 | 工具会原样保留并提示 |
❓ 常见问题(FAQ)
encodeURI 和 encodeURIComponent 有什么区别?
encodeURIComponent 会编码 : / ? # @ & = 等字符,适合编码参数值;encodeURI 保留这些 URL 结构字符,只编码非法字符,适合编码整条 URL。编码整条 URL 时若用 encodeURIComponent 会把 :// 也编码,因此要选对规则。为什么空格有时编码成 %20,有时变成 +?
%20 是百分号编码下的空格;+ 是 application/x-www-form-urlencoded 表单编码对空格的约定。本工具在"表单编码"规则下会把空格编码为 +,其余规则编码为 %20。解码遇到非法编码会怎样?
工具会尽量解出合法的 %XX 序列,无法解码的片段原样保留并给出提示,不会因异常而崩溃。中文是如何编码的?
中文按 UTF-8 编码为多个字节,再逐字节做百分号编码,例如"星"会变成 %E6%98%9F。数据会被上传吗?
不会。全部编码解码都在浏览器本地完成,不产生网络请求。能编码整条 URL 吗?
能。编码整条 URL 请选择 encodeURI 规则;编码单个参数值请选择 encodeURIComponent。需要注册或收费吗?
不需要,免费、无次数限制,打开即用。🧭 相关工具
编码解码只是 URL 处理的第一步。如果链接里还带着追踪参数想清掉,用 URL 清洗器;想拆开整条 URL 看结构,用 URL 解析器;要一次处理多行内容,用 URL 批量编码解码。
立即体验:访问 URL 编码解码工具
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!