Base64 在线编码解码 — 文本、文件和 Data URL

把文本或文件编码为 Base64,把图片转成带 CSS 和 <img> 代码片段的 data URI,还能把 Base64 解码回可预览的文件。数据不会离开你的浏览器。

Base64
RnJlZVRvb2xzRm9yV2ViIOKAlCBCYXNlNjQg57yW56CB55qE5piv5a2X6IqC77yM6ICM5LiN5piv5a2X56ym44CC6KGo5oOF56ym5Y+35Lmf5Y+v5Lul77ya8J+Msg==
输入 94 B → 128 个字符(+36%)

完全在浏览器中运行。你输入的任何内容都不会发送给我们或被存储。 浏览全部免费工具.

发现问题,或者觉得哪里可以更好?每条消息我们都会阅读,并尽快修复。

这款免费的 Base64 编码解码工具可在浏览器中把文本和文件转换为 Base64,或从 Base64 转回。它能正确处理 UTF-8,带重音的字符、中文和表情符号都能原样往返——而这正是大多数在线小工具悄悄出错的地方。拖入图片或字体,即可得到 data URI,以及现成的 CSS 背景和 <img> 代码,并清楚列出体积开销;也可以粘贴 data URI 或纯 Base64,预览图片并下载为文件。要同时处理多个文件?一次拖入最多 50 个,就能得到一张 data URI 表格,可复制或下载为 JSON 或 CSV;文本模式还能逐行编码或解码一个列表。

Base64 既不是加密,也不是压缩;它是一种让二进制数据能通过只接受文本的渠道(如 JSON、电子邮件和 URL)传输的方式,代价是字节数增加约 33%。明白这一点,就基本知道什么时候该用它了,其余的见下方说明。

使用方法

  1. 选择“编码”或“解码”。编码时输入或粘贴文本,Base64 会随输入实时显示。
  2. 如果结果要放进 URL 或 JWT,请开启“URL 安全”:+ 和 / 会变成 - 和 _,并去掉填充。
  3. 要编码文件,打开“文件 → Base64 / data URI”标签页,选择或拖入文件。可复制原始 Base64、data URI,或 CSS 和 <img> 代码片段。
  4. 要把 Base64 还原成文件,打开“Base64 / data URI → 文件”并粘贴。类型从 data: 前缀读取或根据字节识别,图片和媒体可直接预览,点击“下载”即可以正确的扩展名保存。
  5. 留意体积一行:如果编码结果已接近数 MB,直接引用文件几乎总是更好的方案。

常见问题

可以一次把多个文件或多行转成 Base64 吗?

可以。在“文件”标签页中选择或拖入最多 50 个文件(总计 25 MB):每个文件生成一行,包含类型、大小、Base64 和 data URI,可逐个复制,也可一起下载为 JSON 或 CSV。在“文本”标签页中勾选“每行单独处理”,即可对列表中的每一行分别编码或解码;无效的 Base64 行会被标出并留空,不影响其他行。

Base64 安全吗?可以用来隐藏数据吗?

不可以。Base64 是编码,不是加密:任何人都能立刻解码,用这个页面就行。它的作用是让二进制数据可以安全地作为文本传输。如果需要保密,请先加密,然后在文本渠道有要求时再对密文做 Base64。

为什么解码后的文本出现奇怪的字符?

通常是因为原文不是 UTF-8,或者 Base64 是由某个工具生成的,它编码的是每个字符的码位而不是 UTF-8 字节(经典的 btoa() bug)。本工具始终按 UTF-8 字节编码和解码。如果源数据是 Latin-1 或 UTF-16,字节本身依然正确,只是文本显示不同。

什么是 URL 安全的 Base64?

标准 Base64 使用 + 和 /,这两个字符在 URL 中都有特殊含义,填充用的 = 也会被 URL 编码器搞乱。URL 安全变体(RFC 4648 第 5 节)把它们换成 - 和 _,并通常省略填充。JWT、OAuth state 值和许多 API 令牌都使用这种形式。本页的解码器两种形式都接受。

应该把图片以 Base64 data URL 的形式嵌入吗?

对于极小的资源(几 KB 以下的图标、小型内联 SVG、字体子集),data URL 能省去一次请求,值得使用。更大的资源就不要了:文件会增大三分之一,无法独立于页面缓存,还会阻塞所在 HTML 或 CSS 的解析。超过约 5 到 10 KB,普通的文件引用更胜一筹。

会上传任何内容吗?

不会。文本使用浏览器的 TextEncoder 和 btoa/atob 转换,文件通过 File API 在本地读取。不会向服务器发送任何内容。

如何把 Base64 转回图片?

把字符串粘贴到“Base64 / data URI → 文件”标签页。如果它以 data:image/png;base64 开头,类型就取自这个前缀;如果是纯 Base64,工具会读取开头的字节(PNG、JPEG、GIF、WebP、AVIF、SVG、PDF、MP3、MP4 及其他常见签名)来判断。图片会在页面上预览,点击“下载”即可保存为普通文件。

一段话讲清 Base64 原理

每 3 个输入字节(24 位)被拆成 4 组 6 位,每组写成 64 个字符之一:A–Z、a–z、0–9、+ 和 /。所以输出长度总是 4 的倍数,约为输入的 4/3;当输入不是 3 字节的倍数时,就会出现 = 填充。解码时完全逆向还原,没有任何损失。

Base64 的常见用途

• HTTP 基本认证:Authorization 头以 Base64 携带 user:password(并未加密,所以必须使用 HTTPS)。

• JWT:头部和载荷是 URL 安全 Base64 编码的 JSON;可用我们的 JWT 解码器解码。

• 电子邮件附件(MIME)和 HTML 邮件中的嵌入图片。

• CSS 和 HTML 中的 data URL,以及某些 JSON API 中的图片字段。

• JSON 和 XML 中的二进制值,因为它们没有原生的字节类型。

Data URI 结构与体积开销

data URI 的格式为 data:[媒体类型][;base64],数据。data:image/png;base64,iVBORw0… 承载的是 PNG;不带 ;base64 时,数据是百分号编码的文本,对 SVG 来说往往更小。浏览器靠媒体类型来渲染内容,所以类型写错(JPEG 字节标成 image/png)可能导致图片在某些场景下无法显示。

Base64 把每 3 个字节变成 4 个字符,所以载荷会增大三分之一(33.3%,外加最多两个填充字符),data: 前缀还会再多几个字符。对 HTML 或 CSS 启用 gzip 或 Brotli 能挽回一部分,但不是全部。本工具会显示你的文件的确切数字,帮你判断是否值得内联;对于大多数 5 到 10 KB 以上的图片,并不值得。

相关免费工具

  • JSON 格式化 — 格式化、压缩和校验 JSON,解析错误精确到行和列。在浏览器中运行,无需上传。
  • JWT 解码器 — 解码 JWT 的头部和载荷,用通俗语言显示过期时间,验证 HS、RS、PS 和 ES 签名,或签发新令牌。任何数据都不会离开浏览器。
  • 图片格式转换 — 在 AVIF、HEIC、TIFF、PNG、JPG、WebP、GIF、BMP 和 SVG 之间转换。大多数转换都不会离开你的浏览器。