URL编码/解码
热门 🔥即时编码或解码URL组件。
如何使用 URL编码/解码
- 1粘贴您的文本
- 2点击「编码」转换为URL格式,或点击「解码」转换回来
- 3复制结果
关于 URL编码/解码
URL编码/解码将文本与URL编码(也称为百分号编码)相互转换。URL编码用%加上两位十六进制代码替换特殊字符,使字符串可以安全地包含在URL中而不破坏其结构。
此工具对于处理查询参数、表单数据、API请求和调试URL编码字符串至关重要。空格、&、=、?和#等字符在URL中有特殊含义——编码它们可以确保它们被解释为数据而非URL语法。
所有编码和解码都在浏览器中即时运行,无需服务器往返。
URL编码/解码的主要功能
- 即时将文本编码为URL安全的百分号编码格式
- 将百分号编码的字符串解码为可读文本
- 支持encodeURIComponent和完整URI编码两种模式
- 处理Unicode字符、空格和所有特殊字符
- 一键复制编码和解码输出
- 完全在浏览器中运行——不向任何服务器发送数据
- 无需提交按钮即可获得即时结果
- 用于调试格式错误的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中是安全的,永远不会被编码。