• 用******户 使用了工具 Base64编解码
  • 开******发 使用了工具 MD5加密
  • 工******程 使用了工具 时间戳转换
  • 程******序 使用了工具 JSON格式化
  • 设******计 使用了工具 图片压缩
  • 产******品 使用了工具 URL编解码
  • 测******试 使用了工具 正则表达式
  • 运******维 使用了工具 密码生成器

在线URL编码/解码工具

编码加密
在线URL编码/解码工具,支持encodeURI和encodeURIComponent两种模式,支持批量处理,实时编码解码文本,快速获取标准化URL编码结果,提升开发与调试效率
URL编码URL解码encodeURIencodeURIComponent百分号编码批量处理在线工具
URL编码/解码
操作:
模式:
encodeURIComponent对URL组件(参数值、路径段等)进行编码,除字母数字外,几乎所有特殊字符都会被编码URL参数值编码、表单数据编码、路径段编码
输入文本
编码结果
使用说明

工具介绍

URL编码(URL Encoding),也称为百分号编码(Percent-Encoding),是一种将URL中的特殊字符转换为%XX格式的编码方式。本工具支持在线URL编码和解码,提供encodeURI和encodeURIComponent两种模式,支持批量逐行处理。encodeURIComponent对几乎所有特殊字符编码,适合编码URL参数值;encodeURI保留URL结构字符,适合编码完整URL。所有操作均在浏览器本地完成,不上传服务器,安全可靠。

两种编码模式详解

encodeURIComponent
对URL组件编码,几乎所有特殊字符都被编码
hello world? → hello%20world%3F
encodeURI
对完整URL编码,保留URL结构字符(;/?:@&=+$,#)
http://a.com/b c → http://a.com/b%20c

常见字符URL编码对照表

字符原文编码结果
空格 %20
感叹号!%21
双引号"%22
井号#%23
美元$%24
百分号%%25
&符号&%26
单引号'%27
左括号(%28
右括号)%29
星号*%2A
加号+%2B
逗号,%2C
斜杠/%2F
冒号:%3A
分号;%3B
小于号<%3C
等号=%3D
大于号>%3E
问号?%3F
@符号@%40
中文字%E4%B8%AD

encodeURI vs encodeURIComponent

对比项encodeURIComponentencodeURI
编码范围几乎所有特殊字符保留URL结构字符
不编码字符数约18个(字母数字+_-.!~*()')约34个(含;/?:@&=+$,#)
主要用途URL参数值、表单数据完整URL地址
对#的处理编码为%23保留为#
对?的处理编码为%3F保留为?
对/的处理编码为%2F保留为/
对&的处理编码为%26保留为&
对=的处理编码为%3D保留为=
对空格的处理编码为%20编码为%20

使用步骤

选择操作
选择「编码」或「解码」操作
选择模式
选择encodeURI或encodeURIComponent模式
开启批量(可选)
如需逐行处理,勾选「批量模式」
输入并执行
在左侧输入内容,点击「URL编码/解码」按钮

使用技巧

常见问题

Q1: URL编码和URL解码有什么区别?

URL编码是将普通文本中的特殊字符转换为%XX格式的过程,使得文本可以安全地在URL中传输。URL解码是相反的过程,将%XX格式的编码还原为原始字符。例如,「你好」编码后变为「%E4%BD%A0%E5%A5%BD」,解码后还原为「你好」。编码用于发送数据前的处理,解码用于接收数据后的解析。

Q2: 为什么中文编码后会变成9个字符?

因为URL编码基于UTF-8编码,一个中文字符在UTF-8中占用3个字节,每个字节编码为%XX格式(3个字符),所以一个中文字符编码后变成9个字符(3字节 × 3字符/字节 = 9字符)。例如「你」的UTF-8字节是E4 BD A0,编码后就是%E4%BD%A0。emoji表情通常占用4个字节,编码后会变成12个字符。

Q3: 空格应该编码为%20还是+?

标准的URL编码(percent-encoding)中空格编码为%20。但在application/x-www-form-urlencoded格式(表单提交)中,空格也可以编码为+号。这是两种不同的约定:1) %20是RFC 3986标准的URL编码方式;2) +号是HTML表单的传统约定,仅用于查询字符串。JavaScript的encodeURIComponent将空格编码为%20。如果需要+号格式,可以手动替换。

Q4: 什么时候用encodeURI,什么时候用encodeURIComponent?

简单的判断方法:如果要编码的是完整的URL地址(包含协议、域名、路径、查询等),使用encodeURI,它会保留URL结构字符。如果要编码的是URL的一部分(如参数值、路径段、哈希值),使用encodeURIComponent,它会编码所有特殊字符,避免与URL结构冲突。最常见的错误是用encodeURI编码参数值,导致&、=等字符未被编码,破坏URL结构。

Q5: 解码失败怎么办?提示"URI malformed"是什么意思?

「URI malformed」(格式错误的URI)通常表示输入的编码内容格式不正确,常见原因有:1) %后面没有跟随两位有效的十六进制数字;2) 不完整的多字节UTF-8序列;3) 使用了错误的编码格式。检查方法:确保每个%后面都是两位十六进制数字(0-9, A-F),确保中文字符的UTF-8字节序列完整(3个%XX一组)。如果是从其他地方复制的编码,注意不要缺失字符。

Q6: 我的数据会被上传吗?

不会。本URL编解码工具所有计算全程在浏览器本地独立完成,使用浏览器内置的encodeURI/encodeURIComponent和decodeURI/decodeURIComponent API,无需联网操作,全程不产生网络传输。原始文本和编码结果都不会发送、记录或缓存到任何服务器,关闭页面后所有数据即刻清空。

应用场景

应用场景说明
URL参数编码对URL查询参数的值进行编码,防止特殊字符破坏URL结构
表单数据提交对表单数据进行URL编码,用于POST或GET请求
完整URL编码对包含中文或特殊字符的完整URL进行编码
接口调试调试API接口时对请求参数进行编码/解码
爬虫开发构造合法的URL请求,解码响应中的编码内容
数据清洗清洗和规范化URL编码的数据
SEO优化处理含中文的URL,确保搜索引擎正确识别
安全测试测试URL注入、编码绕过等安全场景