# URL 编码、解码与解析

为 URL 对文本进行百分号编码和解码，或把 URL 拆成协议、主机、路径和查询，并以表格形式编辑查询。

https://codeknife.dev/zh/url-bianma/

## 功能

为在 URL 中使用而对文本进行百分号编码和解码，并把 URL 拆成协议、主机、端口、路径、查询和片段。查询以可编辑的名称和值表格呈现，你修改时 URL 会随之重建。

## 使用方法

1. 每行输入或粘贴一项文本或 URL，或拖入文本文件。
2. 选择模式：**编码**转义单个值中所有不安全的字符，**编码 URL** 保留 URL 结构，只转义不能出现的字符，**解码**读取百分号编码，**解析**把 URL 拆成各部分。
3. 在解析模式下，在查询表中修改参数、添加或删除参数，并从输入中复制重建后的 URL。

## 示例

对一个值编码：

`name=Zoë & co` 变成 `name%3DZo%C3%AB%20%26%20co`。URL `https://example.com/zoek?q=kaas en brood` 用**编码 URL** 变成 `https://example.com/zoek?q=kaas%20en%20brood`。

## 须知

- 空格写成 `%20`。在 URL 的查询中，`+` 也表示空格；查询表按此读取。
- ASCII 以外的字符按 UTF-8 字节编码：`é` 变成 `%C3%A9`。
- 解析从不失败：像 `/a/b?x=1` 这样的相对引用只是没有协议或主机。
- 当 `%` 后面没有两位十六进制数字，或转义序列不是有效的 UTF-8 时，解码会失败，该行会被跳过。

## 什么是百分号编码？

URL 只能包含一小组安全字符。其他任何字符，如值中的空格、重音符号或 & 符号，都写成 % 加每个字节的两位十六进制数：空格变成 %20，é 变成 %C3%A9。解码则反过来。

## 常见问题

### “编码”和“编码 URL”有什么区别？

“编码”会转义所有不是字母、数字或 - . _ ~ 的字符，适合查询参数这样的单个值。“编码 URL”保留赋予 URL 结构的字符，如 : / ? # & 和 =，只转义根本不能出现的字符，如空格和重音符号。

### 为什么查询表中的加号会变成空格？

在 URL 的查询部分，+ 表示空格，这是来自 HTML 表单的习惯。表格按此读取，并把空格写回为任何解析器都接受的 %20。

### 这个工具会把我的 URL 发送到别处吗？

不会。一切都在你的浏览器中进行。你输入的内容不会发送到我们的服务器。