无需登录 数据私有 本地保存

URL编码解码工具 - 在线URL Encode/Decode

25
0
0
0
URL编码 Encode
0 字符
URL解码 Decode
decodeURIComponent
0 字符
常见字符URL编码参考
字符 URL编码 说明
空格%20空格(也可用+)
!%21感叹号
"%22双引号
#%23井号/锚点
&%26与符号/参数分隔
=%3D等号
?%3F问号
/%2F斜杠
+%2B加号
@%40at符号
%E4%B8%AD中文示例
😀%F0%9F%98%80Emoji示例
常见问题与知识点

URL编码(百分号编码)是一种将特殊字符转换为%后跟两位十六进制数字的编码方式。URL只能使用ASCII字符集,任何超出ASCII范围的字符(如中文、空格、特殊符号)都必须编码,否则可能导致URL解析错误或安全漏洞。

encodeURIComponent 会编码除字母数字和 - _ . ! ~ * ' ( ) 外的所有字符(包括 / ? # & = + 等),适合编码URL参数
encodeURI 保留URL结构字符(, / ? : @ & = + $ #),适合编码完整URL,不会破坏URL结构。
推荐:编码查询参数值时使用encodeURIComponent。

在URL路径中,空格应编码为%20。在查询参数(application/x-www-form-urlencoded)中,空格通常编码为+。encodeURIComponent会将空格编码为%20,而有些表单编码会使用+。建议统一使用%20以确保兼容性。

中文和Emoji等非ASCII字符会先被转换为UTF-8字节序列,然后每个字节用%前缀的十六进制表示。例如"中"的UTF-8编码为E4 B8 AD,URL编码后为%E4%B8%AD。Emoji"😀"编码后为%F0%9F%98%80(4个字节)。

当输入包含无效的编码序列时(如单独的%符号或%后没有两个有效的十六进制数字),decodeURIComponent会抛出URIError。请检查输入是否完整,确保%后跟两位十六进制数字(0-9, A-F)。本工具会自动捕获此类错误并提示。

在JavaScript中使用fetch/XMLHttpRequest时,如果URL参数包含特殊字符或中文,需要手动编码。在使用模板拼接URL时尤其重要。现代框架(如axios)通常会自动处理,但原生fetch不会。另外在构建API请求、处理重定向URL、生成分享链接时也经常需要手动编码。