# Base64 文本转换：UTF-8、填充与 URL 安全输出

> 了解文本转 Base64 的字节计数、宽松输入处理、UTF-8 替代字符和二进制文件限制。

- Tool: [Base64编码器 / 解码器](https://toolsg.com/zh/base64-encoder)
- Language: zh (available: en, zh, ms, ta)
- Last verified against official sources: 2026-10-19
- Source site: ToolSG — a planning guide, not official or financial advice. Cite the agencies listed under Sources.

## 关键数字一览

| 项目 | 数值 | 来源 |
| --- | --- | --- |
| 文本编码 | UTF-8 字节 — 字节数可能不同于字符数。 |  |
| 标准带填充长度 | 4 × ceil(n / 3) 个字符 — n 为 UTF-8 输入字节数；短输入增幅可能远超三分之一。 |  |
| URL 安全输出 | 使用 - 和 _，省略填充 — 替换标准 +、/ 并去掉末尾 =。 |  |
| 解码输出 | UTF-8 文本 — 无效字节序列变成替代字符；开头的一个 UTF-8 BOM 会被消耗。 |  |

## 使用控件

粘贴文本，选择标准或 URL 安全输出，再按编码。复选框只控制编码输出；解码无论该选项是否勾选都接受两种字母表。解码时粘贴 Base64 载荷并按解码。复制和下载使用输出区，下载的是文本文件。

## 文本转换示例

下表由无界面浏览器中的真实页面按钮生成。字节数按 UTF-8 计算，不是 JavaScript 字符串长度。

| 输入 | 标准 Base64 | UTF-8 字节数 |
| --- | --- | --- |
| `f` | `Zg==` | 1 |
| `Hi` | `SGk=` | 2 |
| `é` | `w6k=` | 2 |
| `中` | `5Lit` | 3 |
| `அ` | `4K6F` | 3 |
| `🙂` | `8J+Zgg==` | 4 |

## 解码行为

解码器去除空白，将 URL 安全字符映射为标准字母表，尽可能补齐填充后调用浏览器解码器。例如带空白和换行的 `S G k=` 解码为 `Hi`。这不是严格的规范形式 Base64 验证器。

解码字节交给浏览器默认 UTF-8 TextDecoder 显示。`/w==` 含无效 UTF-8 字节，会显示为 `�`，不会因此被当作 Base64 语法错误。`77u/QQ==` 解码为 `A`，因为开头的 UTF-8 BOM 被消耗。无效 Base64 语法仍可能报错。

表情示例的 URL 安全输出为 `8J-Zgg`，标准形式为 `8J+Zgg==`，两者均可解码。其他协议可能要求填充或特定外层格式，应按接收方协议处理，不能假定对方同样接受本页的宽松输入。

## 文件、隐私与往返转换

本工具转换文本，不上传文件，也不提供二进制文件下载。完整数据 URL、MIME 头或 JWT 不等于纯 Base64 载荷。应只处理对应载荷；本页不验证令牌签名。

转换在浏览器本地完成，不会为处理上传文本。大输入仍受浏览器内存限制。Base64 是可逆编码，不是加密；获得编码文本的人就能解码。

文本编码会保留空格和换行，完全空输入则被拒绝。文本解码可能替换字节并消耗开头 BOM，因此不是逐字节存档流程。图片请用[图片转 Base64](https://toolsg.com/zh/image-to-base64)或 [Base64 转图片](https://toolsg.com/zh/base64-to-image)；检查文本字节可用[文本转十六进制](https://toolsg.com/zh/text-to-hex)。

## 常见问题

**什么是Base64编码？**

Base64是一种编码方案，使用64个字符（A-Z、a-z、0-9、+、/）将二进制数据转换为ASCII文本格式。它通常用于通过基于文本的协议（如电子邮件或HTTP）传输二进制数据，或在文本格式（如JSON或XML）中嵌入二进制数据。Base64不是加密 - 任何人都可以轻松解码它。

**Base64编码安全吗？**

不，Base64不安全，永远不应用于安全目的。Base64是一种编码方法，而不是加密。任何人都可以将Base64字符串解码回原始数据。它只会使数据对普通观察者不可读。对于真正的安全性，请使用适当的加密算法，如AES或RSA。

**什么是URL安全Base64？**

URL安全Base64是一种变体，在编码输出中用-替换+，用_替换/。这使得编码字符串可以在URL中安全使用，无需额外编码，因为+和/在URL中具有特殊含义。它通常用于Web令牌（JWT）、URL参数和文件名。

**为什么Base64末尾有=填充？**

Base64字符串末尾的=字符是填充，以确保编码字符串长度是4的倍数。这是Base64规范所要求的。=字符的数量（0、1或2）取决于原始数据的长度。某些URL安全Base64实现会省略填充。

**我可以将图像编码为Base64吗？**

本页转换文本，不上传图片文件。编码图片请使用“图片转 Base64”，恢复图片请使用“Base64 转图片”。在此粘贴数据 URL 不会把本页变成图片转换器。

**Base64会增加多少数据大小？**

n 个 UTF-8 输入字节对应的标准带填充 Base64 长度为 4 × ceil(n / 3) 个字符。长输入的额外开销接近三分之一，短输入可能增加更多。本页 URL 安全输出省略填充。

**Base64使用哪些字符？**

标准Base64使用64个字符：大写字母（A-Z）、小写字母（a-z）、数字（0-9）、加号（+）和正斜杠（/）。等号（=）用于填充。URL安全Base64用-替换+，用_替换/，以避免与URL特殊字符冲突。

**Base64可以处理Unicode和特殊字符吗？**

文本先编码为 UTF-8，再转 Base64。解码时按 UTF-8 显示文本，无效字节序列会显示替代字符，开头的一个 UTF-8 BOM 会被消耗。这不是逐字节保真的二进制文件解码器。

**此Base64工具对敏感数据安全吗？**

是的，从隐私角度来看。所有编码和解码完全在您的浏览器中进行 - 不会向任何服务器发送数据。但是，请记住Base64不是加密。虽然您的数据不会离开您的设备，但任何获得Base64编码字符串的人都可以轻松解码它。

**Base64编码的常见用途是什么？**

Base64广泛用于电子邮件附件（MIME）、在HTML/CSS中嵌入图像（数据URL）、API身份验证（基本身份验证）、在JSON/XML中存储二进制数据、编码Web令牌（JWT）、在URL参数中传输数据以及在文本列中存储二进制数据的数据库存储。

**我可以在没有此工具的情况下解码Base64吗？**

是的，可以使用许多编程语言和命令行工具解码Base64。在JavaScript中：atob(base64String)，在Python中：base64.b64decode()，在PHP中：base64_decode()，在终端中：echo "string" | base64 -d。此工具提供了一个方便的基于浏览器的界面。

**为什么解码Base64时出现错误？**

去除空白、转换 URL 安全字符并补齐填充后，格式损坏的 Base64 仍可能报错。本页接受两种字母表。无效 UTF-8 字节会显示替代字符，而不是产生 Base64 解码错误。


## 资料来源

- [IETF — RFC 4648 Base64 and URL-safe alphabet](https://www.rfc-editor.org/rfc/rfc4648.html)
- [WHATWG — Encoding: TextEncoder and TextDecoder](https://encoding.spec.whatwg.org/)
