Base64 编码 / 解码

在浏览器中将文本或文件编码为 Base64,或将 Base64 解码还原。支持 Unicode 与二进制,数据不会上传。

模式
方向

文本输入

输入或粘贴要编码为 Base64 的文本。

输入:0 字节

输出

在上方输入或粘贴内容,结果会显示在这里。

在浏览器中完成 Base64 编码与解码

Base64 把任意字节数据转换成纯 ASCII 文本,因此常见于 data URI、邮件附件、API 请求内容和配置文件。这个工具支持双向转换:输入或粘贴文本即可编码为 Base64;粘贴 Base64 字符串即可还原出原始文本或文件。

文本编码会正确地先转换为 UTF-8 字节序列,因此日文、表情符号等任何 Unicode 文本都能准确地往返转换——不像简单的 btoa(),遇到 Latin-1 范围以外的字符就会出错。文件编码采用分块读取,因此处理大文件时不会触及浏览器限制。如果粘贴的内容解码后得到的字节并非有效的 UTF-8 文本,工具会提供原始字节下载,而不是显示乱码字符串。

为什么文本和文件不会离开你的设备

这里的隐私是一种结构性保证,而不是承诺——因为根本不存在可以上传的服务器,所以也就没有上传这一步。人们编码的内容常常比较敏感,比如 API 令牌、证书、配置文件或私人文档,这一点尤为重要:

  • 编码和解码全部在浏览器中完成。
  • 页面以静态文件形式提供,不会发出携带你输入内容的请求。
  • 源代码是公开的,任何人都可以阅读(MIT 许可)。
  • 支持离线使用——这也正是因为数据不会离开设备才得以实现。

如果你想亲自验证,可以在编码或解码时打开浏览器的 Network 面板——不会有请求携带你的数据。 查看源代码。

使用方法

  1. 选择文本或文件模式

    文本模式处理你输入或粘贴的字符串;文件模式处理你选择或拖放的文件。

  2. 选择编码或解码

    粘贴看起来像 Base64 的字符串会自动切换到解码模式;你随时可以手动切换回去。

  3. 添加输入内容

    输入或粘贴文本,或选择/拖放文件。任何类型的文件都可以编码。

  4. 复制或下载结果

    将 Base64(或数据 URI)复制到剪贴板,或直接下载。解码文件时会先询问文件名,因为原始文件名并未保存在 Base64 字符串本身中。

常见问题

我的文本或文件会被上传到什么地方吗?

不会。编码和解码全部在浏览器中完成,没有服务器端处理,因此数据没有离开设备的途径。源代码是公开的,你可以在浏览器的 Network 面板中确认这一点。

为什么不直接在浏览器控制台用 btoa()?

btoa() 只能处理 Latin-1 文本(字符码 0–255),遇到日文、表情符号等大多数 Unicode 文本会报错。这个工具编码的是实际的 UTF-8 字节序列,因此任何文本都能准确往返转换;解码时同样通过 UTF-8 解码器还原,而不是假定 Latin-1。

如果解码的 Base64 不是有效的 UTF-8 文本会怎样?

工具不会向你展示一堆替换字符组成的乱码(这是常见的失败方式),而是会检测到解码后的字节并非有效 UTF-8,并提供原始字节下载——这在 Base64 实际代表二进制文件而非文本时很有用。

可以编码大文件吗?

除了为保持页面响应而设置的一个宽松上限外,没有固定限制。文件是分块转换的,避免了简单的一次性转换在处理大文件时可能出现的崩溃。非常大的文件仍可能需要一点时间,因为一切都在你的设备上处理。

什么是数据 URI?什么时候会用到它?

数据 URI 会把文件的 Base64 数据直接嵌入类似 data:image/png;base64,... 的字符串中,从而可以代替 URL 使用——例如内嵌在 CSS 或 HTML 中。文件模式可以显示纯 Base64,也可以显示完整的数据 URI。

支持离线使用吗?

支持。这是一个 PWA,首次访问后会被缓存,因此没有网络连接时也能编码和解码。你还可以将它添加到主屏幕。