反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈! 反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈!
v1.0 · 已上线中英双语纯客户端

URL 编解码URL Encode / Decode

encodeURIComponent / encodeURI 双模式在线编解码,解码方向支持逐层还原被多重编码的字符串(%2520 → 空格),调试查询参数、构造回调地址、排查乱码更快。数据全程不上传。

本周使用—·收藏962·版本v1.0.0·最后更新1 周前·完全免费
模式
·范围
·字符55
输入UTF-8 · 1 行
输出encodeURIComponent
// 编码结果会显示在这里…
·
执行

工具介绍

3 段详细说明

URL 编解码是处理 URL 与特殊字符转换的标准工具。无论是含中文 / 空格的查询参数、OAuth 回调地址还是埋点日志里的地址串,粘贴进来即可一键双向转换,完整支持 encodeURIComponent / encodeURI 两种模式,解码方向还能逐层还原被多重编码的字符串。

所有转换都在浏览器内存中完成,内容不上传任何服务器。基于浏览器原生 encodeURIComponent / decodeURIComponent,按 RFC 3986 百分号编码实现,零依赖、零打包,1 MB 以内编码几乎瞬时(< 100ms)。

排查「网址乱码」时最怕被编了两次:多次解码 自动逐层还原(%2520 → %20 → 空格);解码报错时给出「第 X 行 第 Y 列」定位与人话解释;点「交换」把结果送回输入框反向转换,编解码往返验证两不误。

基础知识 · URL 编码原理

RFC 3986 · 百分号编码

URL 编码(百分号编码)是让任意字符在 URL 中安全出现的标准方案(RFC 3986)。核心规则只有一句话:不安全的字符按 UTF-8 字节逐个转成 %XX:

1percent-encoding百分号编码
URL 只允许有限字符直接出现:字母、数字与 - . _ ~ 等未保留字符。其余字符按 UTF-8 字节逐个转成 %XX 形式(如空格 → %20),这就是百分号编码(RFC 3986)。
2reserved chars保留字符
: / ? # [ ] @ 等字符在 URL 中有结构含义(分隔协议、路径、查询串)。给整个地址编码时应保留它们;给参数值编码时则要一并转义,否则会被误当成结构符。
3component vs fullencodeURIComponent vs encodeURI
encodeURI 编码整个 URL,保留 ://?&#= 结构符;encodeURIComponent 编码 URL 组件(参数值),结构符也一起转义。给参数值用组件模式,给完整地址用完整模式。
4%20 vs +空格的两种形态
%20 是标准百分号编码;+ 是 HTML 表单(application/x-www-form-urlencoded)的约定。本工具按标准输出 %20;注意 decodeURIComponent 不会把 + 还原成空格,表单串需先手动替换。
5double encoding双重编码陷阱
「%」本身会被编码成 %25,于是 %E8%9C%97 二次编码后变成 %25E8%259C%2597。网关 / 框架重复转义是「网页乱码」的常见根因,用多次解码逐层还原即可定位。
6utf-8 bytes中文 = 3 字节
「蜗」的 UTF-8 编码是 3 个字节 E8 9C 97,对应 %E8%9C%97;emoji 占 4 字节,对应 6 组 %XX。看到一长串 %XX 不必慌,那是多字节字符的正常形态。
场景速记
查询参数:参数值整体编码,?q=%E8%9C%97%E7%89%9B%20%E5%B7%A5%E5%85%B7%E7%AE%B1,中文、空格、& 都安全。
OAuth / 支付回调:redirect_uri、notify_url 的值是完整 URL,必须用组件模式整体编码,防止内部的 & ? 破坏外层结构。
常用字符对照:空格 %20 · ! %21 · # %23 · & %26 · + %2B · = %3D · ? %3F · @ %40。
排查乱码口诀:先数 %25 的个数——出现 %25 说明至少被编了两次;勾选「多次解码」逐层还原到可读文本。
与 Base64 的分工:URL 编码解决「字符在 URL 中合法出现」;Base64 解决「二进制走文本通道」。URL 里传 Base64 时,Base64 的 + / 也要再经 URL 编码。

使用说明

4 步快速入门
1
贴内容
URL 或参数值贴到左侧输入框,或点击「示例」一键填充(含中文与空格)
2
选模式与范围
顶部切换「编码 / 解码」;组件模式对应 encodeURIComponent,完整 URL 对应 encodeURI
3
点执行
点「执行」或按 ⌘+↵,右侧立即显示结果;解码出错时红框定位非法的 %
4
复制 / 交换
点「复制」带走结果,或点「交换」把结果送回输入框反向转换验证

使用场景

5 个真实案例
01调试查询参数

把含中文、空格、特殊符号的 query 参数编码成合法 URL,排查 400 / 参数丢失报错。

02排查双重编码乱码

回调地址里出现 %2520 之类被编了两次的串,勾选「多次解码」逐层还原定位层级。

03构造回调 / 跳转链接

OAuth redirect_uri、支付 notify_url 等参数值整体编码,防止内部的 & ? 破坏外层 URL 结构。

04分析埋点 / 日志 URL

把日志、爬虫输出里一长串 %XX 还原成可读的中文地址,快速核对来源与参数。

05API 联调对比

对比 encodeURI 与 encodeURIComponent 的输出差异,确认接口该用哪种模式传参。

常见问题

10 个问答
URL 编解码工具是什么?有什么用?

把 URL 中不允许直接出现的字符(中文、空格、& = ? 等)转成 %XX 百分号编码形式,或反向还原。支持 encodeURIComponent / encodeURI 双模式与多次解码,常用于调试查询参数、构造回调地址、排查乱码。

encodeURI 和 encodeURIComponent 有什么区别?

encodeURI 编码整个 URL,保留 ://?&#= 等结构符;encodeURIComponent 编码 URL 组件(参数值),结构符也一起转义。给完整地址用前者,给参数值用后者——后者更常用。

我的数据会上传到服务器吗?

不会。所有编解码在浏览器内存中完成,输入内容不上传任何服务器。可断网使用,关闭网络后再打开仍能正常使用。

空格会变成 %20 还是 +?

本工具按标准输出 %20。+ 是 HTML 表单(application/x-www-form-urlencoded)的历史约定。注意 JS 的 decodeURIComponent 不会把 + 还原成空格,解码表单串时可先手动把 + 替换成 %20。

什么是双重编码?怎么还原?

「%」本身被编码成 %25,导致 %E8%9C%97 变成 %25E8%259C%2597,解码一次还乱码。常见于网关、框架、模板引擎重复转义。勾选「多次解码」即可逐层还原(最多 10 层,防死循环)。

解码报错怎么排查?

输出区会给出人话提示(第 X 行 第 Y 列 + 原因 + 💡修复建议),输入区自动选中出错字符并红框定位。常见原因:% 后面不是 2 位十六进制(复制不完整或普通 % 未写成 %25)、字节序列不是合法 UTF-8。

支持多大的文本?

建议 ≤ 10 MB。原生编码函数在 1 MB 以内几乎瞬时(<100ms)。编码是纯字符串操作,比 JSON 解析还快。

移动端能用吗?

支持。移动端输入/输出自动垂直堆叠,操作按钮自适应布局。手机上可粘贴微信 / 飞书里收到的编码串直接解码查看。

离线能用吗?

能。PWA 已上线,首次访问后浏览器会缓存所有资源,断网后仍可使用。

结果可以一键复制吗?

可以。点击「复制」按钮即可把结果复制到剪贴板;点「交换」还能把结果送回输入框反向转换,验证编解码往返一致性。

相关工具

开发者分类

数据来源

隐私优先
算法:基于浏览器原生 encodeURIComponent / encodeURI 与 decodeURIComponent / decodeURI,按 RFC 3986 百分号编码实现,UTF-8 完整支持。多次解码逐层还原、上限 10 层;错误定位基于对非法 % 序列的逐字符扫描,无 WASM、无 polyfill。
隐私声明:所有编解码均在浏览器内存完成,输入内容不上传任何服务器。本工具不记录任何输入、不埋任何分析点。可断网使用,关闭网络后再打开仍能正常使用。