URL编码/解码

热门 🔥

即时编码或解码URL组件。

开发者工具

如何使用 URL编码/解码

  1. 1粘贴您的文本
  2. 2点击「编码」转换为URL格式,或点击「解码」转换回来
  3. 3复制结果

关于 URL编码/解码

URL编码/解码将文本与URL编码(也称为百分号编码)相互转换。URL编码用%加上两位十六进制代码替换特殊字符,使字符串可以安全地包含在URL中而不破坏其结构。

此工具对于处理查询参数、表单数据、API请求和调试URL编码字符串至关重要。空格、&、=、?和#等字符在URL中有特殊含义——编码它们可以确保它们被解释为数据而非URL语法。

所有编码和解码都在浏览器中即时运行,无需服务器往返。

URL编码/解码的主要功能

  • 即时将文本编码为URL安全的百分号编码格式
  • 将百分号编码的字符串解码为可读文本
  • 支持encodeURIComponent和完整URI编码两种模式
  • 处理Unicode字符、空格和所有特殊字符
  • 一键复制编码和解码输出
  • 完全在浏览器中运行——不向任何服务器发送数据
  • 无需提交按钮即可获得即时结果
  • 用于调试格式错误的URL和查询字符串

支持的格式

输入格式

纯文本百分号编码字符串(%XX格式)完整URL查询字符串值

输出格式

百分号编码字符串解码后的纯文本

使用encodeURIComponent / decodeURIComponent语义——适合对单个查询参数值进行编码。

示例

对URL中使用的搜索查询进行编码

使用户输入的搜索词可以安全地附加到URL查询字符串中。

输入

hello world & more

输出

hello%20world%20%26%20more

解码百分号编码的API参数

将API日志中的百分号编码字符串转换回可读文本。

输入

email%3Duser%40example.com%26name%3DJohn%20Doe

输出

email=user@example.com&name=John Doe

常见使用场景

  • 在附加到URL之前对用户提交的表单数据进行编码
  • 解码API日志中的百分号编码查询参数以进行调试
  • 为重定向URL中的特殊字符做准备
  • 对电子邮件地址或JSON值进行URL查询字符串编码
  • 调试包含未编码保留字符的损坏URL
  • 为OAuth 1.0签名基本字符串准备URL参数

故障排除

空格显示为+而不是%20

解决方案

加号(+)是application/x-www-form-urlencoded格式中编码空格的旧方法。标准URL编码使用%20。

编码完整URL会更改斜杠和冒号

解决方案

只对单个参数值使用encodeURIComponent编码,而不是对整个URL编码。

输出中出现%2520等双重编码字符串

解决方案

这发生在对已编码字符串再次编码时。先解码,然后重新编码。

常见问题

什么是URL编码?

URL编码(百分号编码)将URL中不允许使用的字符转换为%加上两位十六进制代码。例如,空格变为%20,&符号变为%26。

何时需要URL编码?

每当您在查询字符串、表单提交或API参数中传递特殊字符(空格、&、=、?、#)时,都需要URL编码。

encodeURI和encodeURIComponent有什么区别?

encodeURI对完整URL进行编码,保留结构字符(/、:、?、#、&)不变。encodeURIComponent对所有字符编码(包括结构字符),适合对单个查询参数值进行编码。

为什么空格有时在URL中显示为+?

加号是HTML表单中编码空格的旧方法。标准百分号编码使用%20。两者都广泛使用,但根据RFC 3986,%20是正确的。

URL编码和Base64编码一样吗?

不同。URL编码将字符转换为%XX十六进制格式用于URL。Base64编码将二进制数据转换为可打印ASCII字符用于文本协议。

我可以对整个URL进行编码吗?

可以,但通常只应对单个查询参数值进行编码。对完整URL编码会同时编码协议和斜杠,使其失效。

我的数据会发送到服务器吗?

不会。所有编码和解码都在您的浏览器中本地执行。不会传输或存储任何数据。

哪些字符不被编码?

未保留字符——字母(A–Z、a–z)、数字(0–9)、连字符(-)、下划线(_)、句点(.)和波浪号(~)——在URL中是安全的,永远不会被编码。