URL编码解码工具说明

URL编码(百分号编码,Percent-encoding)将URL中不允许的字符转换为 %XX 形式。本工具提供三种编码模式、URL解析、查询参数构建等功能,是开发者处理URL参数的必备工具。所有计算在浏览器本地完成,不上传任何数据。

三种编码模式

  • encodeURIComponent:编码URL的某个组成部分(如查询参数值),会编码 :/?#[]@!$&'()*+,;= 等保留字符。最常用,拼接查询参数时应使用此模式
  • encodeURI:编码完整的URL,不会编码保留字符(:/?#[]@等),保持URL结构完整。适合对整个URL进行编码
  • 全字符编码:将每个字符(包括字母和数字)都转换为%XX形式,适合需要完全编码的特殊场景

URL解析功能

将完整URL拆分为协议(protocol)、主机(hostname)、端口(port)、路径(pathname)、查询参数(search)、锚点(hash)等组成部分,便于开发调试。

常见问题

encodeURIComponent 和 encodeURI 该用哪个?

拼接URL查询参数值时用 encodeURIComponent(如 ?q= + encodeURIComponent(keyword));对整个URL编码时用 encodeURI(如重定向地址)。日常开发中 encodeURIComponent 使用更频繁。

空格编码成 %20 还是 + ?

%20 是标准百分号编码。+ 是 application/x-www-form-urlencoded(HTML表单提交)中空格的特殊表示。本工具默认输出 %20,勾选"空格用+代替"可切换。后端处理时注意区分这两种格式。

中文字符是怎么编码的?

中文先按 UTF-8 编码为多个字节,每个字节转为 %XX。例如"中"的 UTF-8 是 E4 B8 AD,编码后为 %E4%B8%AD。

解码报错 URIError 怎么办?

当输入包含不合法的百分号序列(如单独的 % 或 %后跟非十六进制字符)时会报 URIError。检查 % 后是否都跟着两位十六进制字符。可以尝试先修正错误序列再解码。

查询参数中的特殊字符怎么处理?

查询参数的 key 和 value 都应该用 encodeURIComponent 编码。这样 =、&、# 等分隔符不会被误解析。使用本工具的"查询参数构建"功能可以自动处理编码。

数据安全吗?

完全安全。所有编解码在浏览器本地完成,不向任何服务器发送数据。