URL在线编码和解码工具

免费在线工具,用于编码和解码URL。将特殊字符转换为Web应用程序的URL安全格式,并解码URL参数。

尝试这些例子:

关于 URL 编码

URL 编码,也称为百分号编码,是一种在统一资源标识符 (URI) 中对信息进行编码的机制。它用于将 URL 中不允许的字符转换为可通过互联网传输的格式。此编码将不安全的 ASCII 字符替换为 "%" 后跟两个十六进制数字。

URL 编码的常见用途

  • 格式化 URL 查询字符串
  • 通过 HTTP 请求发送表单数据 (application/x-www-form-urlencoded)
  • 创建包含特殊字符或空格的有效 URL
  • 对 URL 中的非 ASCII 字符进行编码
  • 在 API 和 Web 服务中传递复杂参数

URL 编码的工作原理

URL 编码遵循以下原则:

  • 字母数字字符 (A-Z, a-z, 0-9) 保持不变
  • 特殊字符如空格、?, &, =, %, + 转换为它们的百分号编码形式
  • 每个 UTF-8 字节单独进行百分号编码
  • 空格可以编码为 "%20" 或 "+"(在查询参数中)
  • 保留字符如 /, :, ?, #, [ 在 URL 中有特殊含义,视上下文处理

encodeURI 与 encodeURIComponent

JavaScript 提供了两种 URL 编码函数:

  • encodeURI:编码完整 URI,保留 URI 语法字符 (/:?#[]@!$&'()*+,;=)
  • encodeURIComponent:编码 URI 组件,包含所有特殊字符

对于用户输入或查询参数,encodeURIComponent() 更安全,可确保所有潜在问题字符都被正确编码。

国际字符的 URL 编码

现代浏览器先将非 ASCII 字符用 UTF-8 编码,然后对每个字节进行百分号编码。这确保了国际字符、表情符号和其他 Unicode 符号能正确包含在 URL 中。例如,日文字符“日”先编码为 E6 97 A5,然后表示为 "%E6%97%A5"。

示例

原文URL 编码后
Hello WorldHello%20World
https://example.com/?q=search termhttps%3A%2F%2Fexample.com%2F%3Fq%3Dsearch%20term
50% off sale!50%25%20off%20sale%21
こんにちは%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF