🧰在线工具箱

URL 编解码

URL 编码与解码转换

提示:

  • encodeURIComponent:编码所有特殊字符,适用于 URL 参数
  • encodeURI:保留 URL 特殊字符(: / ? # 等),适用于完整 URL

工具简介

URL编码(也称百分号编码、Percent-encoding)是一种将特殊字符转换为可以安全在URL中传输的格式的方法。非ASCII字符和URL保留字符会被转换为百分号(%)加两位十六进制数的形式。本工具支持两种编码模式:encodeURIComponent用于编码URL参数,encodeURI用于编码完整URL。支持中文和各种特殊字符的处理,所有操作都在浏览器本地完成。

使用方法

  1. 选择编码模式:encodeURIComponent(推荐用于URL参数)或 encodeURI(用于完整URL)
  2. 在「原始文本」框中输入要编码的内容
  3. 点击「编码」按钮进行URL编码
  4. 或在「编码结果」框中粘贴URL编码字符串
  5. 点击「解码」按钮还原为原始文本
  6. 使用「复制」按钮复制结果到剪贴板

常见使用场景

  • URL参数处理:对查询字符串参数进行编码
  • 中文链接:处理包含中文的URL地址
  • 表单提交:对表单数据进行URL编码
  • API调用:构建包含特殊字符的API请求
  • 跳转链接:对重定向URL进行编码
  • 链接分享:处理包含空格或特殊字符的链接

常见问题(FAQ)

Q1: encodeURI 和 encodeURIComponent 有什么区别?

encodeURIComponent会编码所有特殊字符(包括 / ? # & = 等),适合编码URL的查询参数值。encodeURI保留URL的结构字符不编码,适合编码完整的URL。例如,如果参数值中包含&符号,必须用encodeURIComponent编码。

Q2: 为什么中文在URL中会变成乱码?

这不是乱码,是URL编码的正常结果。中文字符用UTF-8编码后每个字节转换为%XX格式。例如「你」字的UTF-8编码是E4BDA0,URL编码后变成%E4%BD%A0。浏览器和服务器会自动解码还原。

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

在URL路径和查询参数中,空格应编码为%20。加号(+)表示空格是早期表单提交(application/x-www-form-urlencoded)的约定。本工具使用标准的%20编码。

Q4: 哪些字符需要URL编码?

除了字母、数字和 - _ . ~ 这几个字符外,其他特殊字符都建议编码。中文、日文等非ASCII字符必须编码。即使在现代浏览器中可以直接使用中文URL,编码后的链接兼容性更好。

Q5: 解码后出现乱码怎么办?

可能是原始编码使用了非UTF-8字符集(如GBK)。本工具使用UTF-8解码,如果原始数据是其他编码会显示乱码。这种情况需要用对应的字符集重新编码。