首页 编码加密工具 URL编解码器

URL编解码器

对URL字符串进行编码和解码,全面支持encodeURIComponent和decodeURIComponent方法

🎯 模式选择
📝 输入
✨ 输出
结果:
已复制!
📚 特殊字符对照表
字符 编码后 说明 组件安全
! %21 感叹号
# %23 井号
$ %24 美元符号
& %26 和号
+ %2B 加号
, %2C 逗号
/ %2F 斜杠
: %3A 冒号
; %3B 分号
= %3D 等号
@ %40 @符号
space %20 空格
? %3F 问号
[ ] %5B %5D 方括号

💡 提示:编码查询参数值时使用组件编码(encodeURIComponent);编码完整URL路径时使用完整URL编码(encodeURI)。

📋 批量编解码

常见编码字符

&%26
=%3D
+%2B
%%25
#%23
?%3F
/%2F
:%3A

常见URL编码

中文%E4%B8%AD%E6%96%87
空格%20
换行%0A
"%22
'%27
<%3C
>%3E
{%7B

🏷️ 相关标签

编码加密工具编码在线工具纯前端免费隐私安全

什么是 URL 编码工具?

URL 编码(又称百分号编码,Percent-encoding)工具是一款实现文本与 URL 安全编码之间相互转换的在线工具。URL 规范(RFC 3986)规定只有特定字符可以安全地出现在 URL 中:字母、数字和少数特殊字符(- _ . ~)。中文、空格、&、=、? 等字符在 URL 中需要进行百分号编码——将字符转为 % 后跟两位十六进制数(如空格→%20,中→%E4%B8%AD)。本工具支持 encode(编码)和 decode(解码)双向转换,同时区分 encodeURIComponent(编码所有特殊字符)和 encodeURI(保留 URL 结构字符)两种模式。

如何使用 URL 编码工具

  1. 步骤一:选择操作模式 — 选择"编码"将普通文本转为 URL 安全格式,或选择"解码"将 %XX 编码还原为原始文本。
  2. 步骤二:输入内容 — 在输入框中粘贴需要处理的文本或 URL 片段。
  3. 步骤三:获取结果 — 编码/解码结果实时显示,同时展示 encodeURIComponent 和 encodeURI 两种编码的差异(如果适用)。

常见使用场景

场景一:URL 查询参数编码

构建 GET 请求 URL 时,查询参数值中的特殊字符需要编码。例如搜索关键词"前端开发"需要编码为 %E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91 才能安全地放在 URL 中。

场景二:API 请求参数构造

调用 REST API 时,URL 中的路径参数和查询参数需要正确编码。包含空格、中文或特殊字符的参数值必须经过 URL 编码,否则请求可能失败或返回错误结果。

场景三:调试已编码的 URL

收到一个包含大量 %XX 编码的 URL 时,使用解码功能查看原始内容,确认链接是否正确、参数值是什么。

技术原理

URL 编码规则:非保留字符(字母、数字、- _ . ~)保持不变;其他字符转为 UTF-8 字节序列,每个字节表示为 % 加两位十六进制。JavaScript 提供了两个内置函数:encodeURIComponent() 编码所有特殊字符(包括 :/?#[]@!$&'()*+,;=),encodeURI() 保留 URL 结构字符(:/?#[]@!$&'()*+,;=)。

// URL 编码对比
const text = "Hello World! 你好";

encodeURIComponent(text);
// "Hello%20World!%20%E4%BD%A0%E5%A5%BD"

encodeURI(text);
// "Hello%20World!%20%E4%BD%A0%E5%A5%BD"

// 区别在于 URL 结构字符
const url = "https://example.com/path?q=测试&lang=zh";
encodeURI(url);       // 保留 :/?&= 不编码
encodeURIComponent(url); // 全部编码

// 解码
decodeURIComponent("%E4%BD%A0%E5%A5%BD"); // "你好"
decodeURI("%E4%BD%A0%E5%A5%BD");          // "你好"

最佳实践与注意事项

常见问题

Q:encodeURIComponent 和 encodeURI 有什么区别?

A>encodeURIComponent 编码所有特殊字符(包括 :/?#[]@!$&'()*+,;=),用于编码单个参数值。encodeURI 保留 URL 结构字符不编码,用于编码完整 URL。对参数值用 encodeURI 可能出错(如参数值包含 & 会不被编码,导致参数分割错误)。

Q:空格为什么有时编码为 %20 有时是 +?

A>%20 是标准 URL 编码(RFC 3986),+ 是表单编码(application/x-www-form-urlencoded)中空格的表现形式。URL 路径和查询参数中的空格应编码为 %20。表单提交时 JavaScript 自动将空格转为 +。

Q:什么是"双重编码"问题?

A>如果文本已经被 URL 编码过一次,再次编码会把 % 符号也编码(%→%25),导致 %20 变为 %2520。解码时需要对应地解码两次。避免方法:在编码前检查文本是否已被编码,或使用框架自带的参数编码功能。

Q:中文字符编码后为什么这么长?

A>每个中文字符在 UTF-8 中占 3 个字节,每个字节编码为 %XX(3 个字符),所以一个中文字符编码后变为 9 个字符(如"中"→%E4%B8%AD)。这是 UTF-8 编码的特性,无法缩短。如需缩短 URL,考虑使用 URL 缩短服务。

Q:如何在 Node.js 中编码 URL?

A>Node.js 提供相同的全局函数 encodeURIComponent/encodeURI。此外还有 url 模块:new URL('https://api.com').searchParams.set('q', '中文') 会自动编码参数值。推荐使用 URL 对象而非手动拼接。

🔥 同类热门工具

🔐
AES加密解密工具
AES对称加密解密工具,支持AES-128、AES-192、...
🔐
Base32 编解码
免费的在线Base32编解码工具,支持标准Base32和He...
🖼
Base64转图片
免费的在线Base64转图片工具,粘贴Base64编码自动还...
🛠️
Base64 编码解码工具
免费在线Base64编码解码工具,支持文本和图片的Base6...
🏛
凯撒密码
免费的在线凯撒密码工具,支持加密解密和暴力破解,显示所有25...
🛠️
Chmod权限计算器
在线Chmod权限计算器,可视化设置文件权限,支持数字(75...
🛠️
哈希/加密工具
免费在线哈希/加密工具,支持MD5、SHA-1、SHA-25...
🔣
HTML实体编码/解码器
在线HTML实体编码解码器,支持命名实体、十进制、十六进制格...
📡
摩斯电码转换
免费的在线摩斯电码转换工具,支持文本与摩斯码互转,可播放音频...
🔑
ROT13 加密解密
免费的在线ROT13/ROT47/ROT5加密解密工具,支持...