URL编码器 / 解码器

即时编码和解码URL。支持encodeURIComponent和完整URI编码。100%客户端处理。

所有处理完全在您的浏览器中进行,不向任何服务器发送数据。

什么是URL编码(百分比编码)?

URL编码也称为百分比编码,将URL中不允许的字符转换为%符号后跟两位十六进制数字的格式。由RFC 3986定义,允许在URL中安全包含特殊字符、空格和非ASCII文本(如中文)。例如:空格变为%20,汉字「你」变为%E4%BD%A0。

应该使用哪种模式?

URL编码有两种模式。完整URI模式(encodeURI)在编码整个URL的同时保留://、?、&等URL结构字符,适用于安全传递完整URL的场景。组件模式(encodeURIComponent)用于编码单个参数值(如?q=搜索词),它会对包括结构字符在内的所有字符进行编码,因此对整个URL使用会破坏URL结构,浏览器将无法将其识别为有效地址。

encodeURIComponent 与 encodeURI 的区别

项目组件完整URI
保留的字符A–Z a–z 0–9 - _ . ! ~ * ' ( )上述字符 + URL结构字符 (: / ? # [ ] @ ! $ & ' ( ) * + , ; =)
用途查询参数值、表单数据在保留URL结构的同时对整个URL进行编码

常见编码字符

字符编码说明
space%20在表单编码中也可写作 +
&%26查询参数分隔符
=%3D键=值分隔符
#%23片段标识符
+%2B加号(不是空格)
/%2F路径分隔符
?%3F查询起始字符
@%40电子邮件、认证信息

常见问题

URL编码和百分比编码是一回事吗?
是的,它们是相同的。百分比编码是RFC 3986中定义的技术名称。每个不安全的字符被替换为%加上其UTF-8字节值的十六进制表示。
为什么中文URL编码后变得很长?
中文字符在UTF-8中占3个字节,每个字节编码为%XX,所以一个中文字符变成9个字符(如:你 → %E4%BD%A0)。
空格应该用%20还是+表示?
%20是RFC 3986标准的百分比编码。+用于HTML表单编码(application/x-www-form-urlencoded)。在URL中,%20更为可靠。
什么时候用组件模式,什么时候用完整URI模式?
编码单个查询参数值时使用组件模式(encodeURIComponent),对整个URL进行编码同时保留其结构(://、?、&等)时使用完整URI模式(encodeURI)。
什么是双重编码?
双重编码是对已经编码的字符串再次编码,例如%20变成%2520。这会导致URL无法正常工作,请确保输入未被预先编码。
浏览器可以直接显示中文URL吗?
现代浏览器会以人类可读的形式显示国际化URL,但实际的HTTP请求使用百分比编码形式。此工具显示网络上实际传输的内容。
我输入的数据会发送到服务器吗?
不会。所有编码和解码完全在您的浏览器中通过JavaScript执行,不向任何服务器传输数据。

相关工具