# Base64 编码解码工具

URL: https://shahid09.is-a.dev/zh/tools/base64-encoder-decoder/
Author: Muhammad Shahid (https://shahid09.is-a.dev/)
免费工具 · 在浏览器中运行

把文本编码为 Base64，或把 Base64 解码回文本，支持表情符号和中文，可选 URL 安全格式。

**快速解答:** Base64 把任何数据转换成由 64 个安全字符组成的文本，使其能通过只处理文本的系统，例如 JSON、URL 或电子邮件。它是编码，不是加密：任何人都能解码。URL 安全 Base64（Base64URL）用 - 和 _ 替换 + 和 /，并去掉填充，JWT 使用的就是这种格式。

## 使用方法

1. **选择编码或解码.** 编码把文本转为 Base64；解码把 Base64 转回文本。
2. **粘贴输入.** 任何语言的文本都可以，因为会以 UTF-8 转换。
3. **按需选择 URL 安全.** 用于 URL、文件名和 JWT。

## 常见问题

### Base64 是加密吗？

不是。Base64 只是改变数据的书写方式，任何人都能解码。机密信息请使用真正的加密。

### 为什么 Base64 会让数据变大？

每 3 个字节变成 4 个字符，所以编码后的数据大约大 33%。

### 什么是 URL 安全 Base64？

一种用 - 和 _ 代替 + 和 / 的变体，通常去掉 = 填充，因此可用于 URL 和文件名。

### 为什么解码后出现乱码？

输入可能不是文本（例如图片）、不是有效的 Base64，或使用了 URL 安全字母表。

### 我的数据会被上传吗？

不会。编码和解码都在浏览器中运行。

### 如何在 JavaScript 中进行 Base64 编码？

btoa() 适用于 ASCII 文本；对任意 UTF-8 文本，要先用 TextEncoder 转为字节，本工具就是这样做的。在 Node.js 中使用 Buffer.from(text).toString("base64")。

### 什么是 data URL？

一种把文件以 Base64 形式直接嵌入页面的方式，例如 data:image/png;base64, 后面接编码数据。

### Base64 末尾的 = 是什么？

填充字符，使长度成为 4 的倍数。URL 安全的 Base64 通常会省略它。

### 可以在这里编码图片或文件吗？

本工具编码文本。文件也能 Base64 编码，但体积会增大约三分之一。

### 标准 Base64 能直接用在 URL 中吗？

不能。它包含在 URL 中有特殊含义的 + 和 /，请改用 URL 安全的变体。

## 相关内容

- [JWT 解码器](https://shahid09.is-a.dev/zh/tools/jwt-decoder/)
- [SHA-256 哈希生成器](https://shahid09.is-a.dev/zh/tools/hash-generator/)
- [JSON 格式化与校验工具](https://shahid09.is-a.dev/zh/tools/json-formatter/)
