Base64 文件编码器

文件转 Base64

Base64 会把任何二进制文件变成一串可打印的 ASCII 字符,使它能够通过那些只为文本设计的系统传输:JSON、YAML、邮件正文、短信,以及复制粘贴到聊天中。这个编码器接受任意文件,无论是 PDF、图片、ZIP 还是可执行文件,并返回可直接放入 data: URI、API 请求体或配置文件的 Base64 表示。

如何编码文件

  1. 1

    把任意文件拖入编码器

    所有二进制格式都可使用。浏览器会读取原始字节。

  2. 2

    字节被编码为 Base64

    每 3 个字节会变成 4 个来自字母表 `A-Z a-z 0-9 + /` 的 ASCII 字符。

  3. 3

    选择输出格式

    普通 Base64、带浏览器报告的 MIME 类型(若未提供则使用通用值)的 `data:` URI,或适合放入 JSON 字符串的安全版本。

  4. 4

    复制或下载为文本

    大文件下载为 `.txt`;小文件可复制到剪贴板。

体积开销

Base64 会把每 3 个字节扩展为 4 个字符,使存储和网络成本增加 33%。末尾用 = 填充还会再多出几个字节。粗略估算如下:

输入文件大小 Base64 文本大小
1 KB 1.33 KB
100 KB 133 KB
1 MB 1.33 MB
10 MB 13.3 MB

把大型二进制文件以 Base64 形式嵌入 HTML 或 JSON,是迅速拖慢页面加载、撑大解析器内存的做法。只有在部署条件确实迫使你这样做时,才把超过约 10 KB 的内容内联进去。

常见用途

  • 数据 URI, CSS 或 HTML 中的小型内联图片:url("data:image/png;base64,iVBORw0KGgo...")
  • 邮件附件, MIME 多部分正文用 Base64 编码附件,以便安全地通过 SMTP 传输。
  • JSON 请求体, 为只发一次请求的 API,在 JSON 字段中嵌入 PDF 或 ZIP。
  • YAML/配置文件, 在配置中携带 TLS 密钥或小型二进制数据。

变体与填充

RFC 4648 标准 Base64 字母表包含 64 个符号:A-Za-z0-9+/= 是填充符,不属于字母表。如需 URL 安全的输出(把 + 替换为 -/ 替换为 _),请使用专用开关。填充默认启用,也可以关闭。

隐私说明

文件永远不会离开你的设备。FileReader API 会在浏览器内读取字节,由 JavaScript 完成编码。在编码敏感的 PDF、私钥或尚未发布的素材时,这一点尤为重要。

常见问题

编码器只接受一个不超过 50 MB 的文件。Base64 结果比源文件更大,并保存在浏览器内存中,因此这一硬性限制可避免内存占用过高。

需要适合 URL 或文件名的字母表时使用。URL 安全的 Base64(RFC 4648 第 5 节)把 + 替换为 -、把 / 替换为 _;是否保留末尾的 = 由单独的填充选项控制。

只对 data: URI 输出重要。data:image/png;base64,... 会告诉浏览器如何渲染解码后的字节。对普通 Base64 或嵌入 JSON 来说,MIME 类型并不是编码数据的一部分。

HTML 可以包含 data:application/pdf;base64,... URL,但现代浏览器通常会阻止顶层页面导航到 data: URL,而且不同浏览器的下载行为并不可靠。较大的值还可能超出 URL、内存或 Content Security Policy 限制。若要可靠下载,请在浏览器代码中创建 Blob 对象 URL,或通过 HTTPS 链接到托管文件。

相关工具

此工具还提供其他语言版本