# Base64 编码与解码

将文本编码为 Base64，或将 Base64 解码回文本，支持标准字母表和 URL 安全字母表。

https://codeknife.dev/zh/base64-bianma-jiema/

## 它能做什么

Base64 能把任意字节变成由 64 个安全字符组成的纯文本，让二进制数据可以通过只处理文本的系统传输，例如邮件正文、JSON 字段、URL、data URI 和 HTTP 标头。这个工具可以把文本编码为 Base64，也可以把 Base64 解码回文本，全程在你的浏览器中完成。

## 如何使用

1. 选择**编码**或**解码**。
2. 输入或粘贴文本，也可以把文件拖到输入框上。
3. 选择**标准**字母表（`+` 和 `/`）或 **URL 安全**字母表（`-` 和 `_`），并决定是否添加 `=` 填充。
4. 复制结果，或直接发送到另一个工具。

打开逐行选项，可以单独转换每一行，例如一列已编码的值。

## 示例

对 `Hello, world!` 编码，得到：

```
SGVsbG8sIHdvcmxkIQ==
```

同样的字节，使用 URL 安全字母表且不带填充：

```
SGVsbG8sIHdvcmxkIQ
```

## 须知

- Base64 是一种编码，不是加密：任何人都可以解码。
- 结果比输入大约多三分之一（每 3 个字节变成 4 个字符）。
- 文本默认按 UTF-8 转换。如果解码后的文本出现奇怪的字符，请选择它原本使用的字符集。
- JSON Web Token 使用不带填充的 URL 安全字母表。

## 什么是 Base64？

Base64 用 64 个可打印字符来表示二进制数据，因此可以通过只接受文本的系统传输，例如邮件正文、JSON 字段和 data URL。每 3 个字节变成 4 个字符，所以结果会大约增加 33%。

## 常见问题

### 什么时候应该使用 URL 安全字母表？

当结果要放进 URL 或文件名时使用。它会把 + 和 / 替换为 - 和 _。JWT 使用它，并且不带填充。

### 为什么解码后的文本显示奇怪的字符？

文本可能是用与你所选不同的字符集编码的。请尝试 ISO-8859-1，或确认数据是文本而不是文件。

### Base64 是加密吗？

不是。任何人都能解码 Base64，所以它不会隐藏任何内容。请用它来传输数据，而不是保护数据。