在线 URL 编码/解码工具,实时转换
URL 编码(URL Encoding),又称百分号编码(Percent-Encoding),是一种将 URL 中的特殊字符、非 ASCII 字符和保留字符转换为 %XX 格式的编码机制,其中 XX 是字符在 UTF-8 编码下的十六进制字节值。URL 编码是 HTTP 协议的核心组成部分,确保 URL 在各种网络环境中安全、可靠地传输。
根据 RFC 3986 规范,URL 只允许包含一组有限的安全字符:英文字母(A-Z、a-z)、数字(0-9)以及少数特殊字符(-、_、.、~)。任何超出这个范围的字符——包括中文、日文等非 ASCII 字符,以及空格、#、&、? 等有特殊含义的字符——都必须经过编码处理。
以下字符在 URL 中具有特殊含义,当它们不作为分隔符使用时需要进行编码:
| 字符 | 编码后 | URL 中的含义 |
|---|---|---|
| 空格 | %20(或 +) | 分隔单词 |
| ! | %21 | - |
| " | %22 | - |
| # | %23 | 片段标识符(锚点) |
| $ | %24 | - |
| % | %25 | 编码前缀符 |
| & | %26 | 参数分隔符 |
| ' | %27 | - |
| ( | %28 | - |
| ) | %29 | - |
| * | %2A | - |
| + | %2B | 空格(Query String 中) |
| , | %2C | - |
| / | %2F | 路径分隔符 |
| : | %3A | 协议/端口分隔符 |
| ; | %3B | - |
| = | %3D | 键值对分隔符 |
| ? | %3F | 查询字符串起始符 |
| @ | %40 | 用户信息分隔符 |
| [ | %5B | IPv6 地址 |
| ] | %5D | IPv6 地址 |
中文、日文、韩文、emoji 等非 ASCII 字符,在 URL 编码时会先转换为 UTF-8 字节序列,再对每个字节进行百分号编码。例如:
%E4%BD%A0%E5%A5%BD%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%F0%9F%98%80JavaScript 提供了两个 URL 编码函数,它们的行为有重要区别:
| 特性 | encodeURI() | encodeURIComponent() |
|---|---|---|
| 用途 | 编码完整 URL | 编码 URL 参数值 |
| 不编码的字符 | A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , # | A-Z a-z 0-9 - _ . ! ~ * ' ( ) |
| 典型场景 | 对含有中文的完整 URL 编码 | 对 Query String 的值部分编码 |
| 示例 | encodeURI("https://example.com/你好") → https://example.com/%E4%BD%A0%E5%A5%BD | encodeURIComponent("name=张三&age=25") → name%3D%E5%BC%A0%E4%B8%89%26age%3D25 |
选择建议:如果你要编码整个 URL,使用 encodeURI();如果你要编码 URL 中的某个参数值、路径片段或查询字符串,使用 encodeURIComponent()。大多数情况下,使用 encodeURIComponent() 更安全,因为它会对更多字符进行编码。
?q=%E6%90%9C%E7%B4%A2)。application/x-www-form-urlencoded 格式提交表单时,浏览器会自动进行 URL 编码。/user/%E5%BC%A0%E4%B8%89)。URL 和 URLSearchParams API 解析和构造带参数的 URL。URL 解码是 URL 编码的逆过程,将 %XX 格式的编码字符还原为原始字符。JavaScript 中对应 decodeURI() 和 decodeURIComponent() 两个函数。
在实际开发中,我们经常需要调试经过编码的 URL——将乱码般的 %E4%BD%A0%E5%A5%BD 还原为可读的中文"你好"。这正是 URL 解码工具的核心价值:快速查看参数的真实含义、排查编码问题、验证 API 请求正确性。
一个完整的 URL 由以下部分组成:
scheme://username:password@host:port/path?query=value#hash
本工具不仅提供编码/解码功能,还内置了 URL 解析器:当你输入一个完整 URL 时,会自动拆解出协议、用户名、密码、主机、端口、路径、查询参数和哈希等各个组成部分,并以表格形式清晰展示,方便开发者逐项审查 URL 结构。