Base64 编码解码

免费 Base64 在线编码解码:中文按 UTF-8 正确转换、支持 URL-safe,文件图片可转 Base64,解出的图片可预览下载。无需注册,数据不上传。

  • 中文不乱码
  • URL-safe
  • 文件图片互转
  • 数据不上传

数据只在你的浏览器中处理,不会上传也不会保存。

🔒 所有计算都在你的浏览器内完成,数据不会上传到任何服务器。

什么时候会用到

  • 网页内嵌小图:把图标或小图片转成 Base64,放进 HTML 或 CSS 的 data URI,少一次网络请求。
  • 查看 JWT 内容:JWT 中间那段是 URL-safe Base64,解码后就能看到里面的数据。
  • API 与邮件调试:把接口返回或邮件源码里的 Base64 还原成文字或文件。
  • 配置文件与认证:把账号密码或证书转成 Base64,填进 HTTP Basic 认证或 Kubernetes Secret 等配置。

使用说明

  1. 选择“编码”或“解码”,在左侧输入文字或 Base64,右侧会实时显示结果;中文、emoji 都按 UTF-8 处理。
  2. 要把文件或图片转成 Base64,点“打开文件”选择文件;需要放进网址或 JWT 时勾选“URL-safe”。
  3. 解码结果是文字就直接显示,是图片会出现预览,其他文件点“下载”保存;点“交换”可把结果移回输入框反向转换。

实际示例

中文编码:“你好”用 UTF-8 是 6 个字节,编码后是 5L2g5aW9(8 个字符)。每 3 个字节变成 4 个 Base64 字符,所以 6 个字节正好 8 个字符,不需要补 =。

URL-safe:“<<???>>”共 7 个字节,标准 Base64 是 PDw/Pz8+Pg==,勾选 URL-safe 后变成 PDw_Pz8-Pg,可以直接放进网址;把它粘贴到解码模式,同样还原成 <<???>>。

图片还原:把 data:image/png;base64,iVBORw0KGgo… 这段 1×1 像素 PNG 的 data URI 整段粘贴到解码模式,工具会自动去掉前缀,解出 70 个字节并识别为 PNG,显示预览,点“下载”保存为 decoded.png。

结果怎么看

  • 编码完成时显示“18 bytes → 24 字符”这类信息:前者是 UTF-8 字节数(中文一个字通常 3 个字节、emoji 4 个),后者是 Base64 长度,约为字节数的 4/3 倍并补到 4 的倍数。
  • 结尾的 = 是补位用的,可能有 0~2 个;URL-safe 格式通常把它省略,不影响解码。
  • 解码结果是合法的 UTF-8 文字就直接显示;否则当作文件,按文件头识别 PNG、JPEG、GIF、WebP、PDF、ZIP,图片会显示预览。
  • 解码失败时会指出第几行第几列有非法字符,常见原因是复制时带上了引号、反斜杠或中文标点。

原理与计算方法

  • 文字先用 UTF-8 转成字节,每 3 个字节(24 位)切成 4 组 6 位,对应 RFC 4648 规定的 64 个字符(A–Z、a–z、0–9、+、/),最后不足 3 个字节时用 = 补齐。
  • URL-safe 按 RFC 4648 第 5 节,把 + 换成 -、/ 换成 _,并去掉结尾的 =,可以安全放在网址和文件名中。
  • 解码时自动忽略空格和换行、去掉 RFC 2397 的 data URI 前缀(data:…;base64,),同时接受标准与 URL-safe 字符,缺少的 = 也会自动补上。
  • 解出的字节如果是合法 UTF-8 且除了 Tab 和换行外没有控制字符,就当作文字显示;否则当作二进制文件处理。

适用限制

  • Base64 只是编码不是加密,任何人都能解回原文,不能用来保护密码或个人信息。
  • 文件编码上限为 10 MB,Base64 输出会比原文件大约三分之一。
  • 文字一律按 UTF-8 处理;原始数据如果是 GBK、Big5 等其他编码,解码后会被当作二进制,请下载后用对应编码打开。
  • 只识别常见的几种文件类型,其他格式下载的扩展名是 .bin,需要自行改名。

常见问题

为什么 Base64 解码出来是乱码或显示为二进制?

最常见的原因是原始数据不是 UTF-8 文字,比如 GBK 编码的旧数据,或者本来就是图片、压缩包等文件。本工具遇到非 UTF-8 的内容会按二进制显示,你可以点“下载”保存后用合适的程序打开。

URL-safe Base64 是什么?什么时候用?

标准 Base64 的 + 和 / 在网址里有特殊含义,URL-safe 版本改用 - 和 _,并省略结尾的 =。JWT、网址参数、文件名常用这种格式。解码时本工具两种都能自动识别,不用另外设置。

图片转成 Base64 后怎么放进 HTML 或 CSS?

点“打开文件”选图片,复制输出后在前面加上 data:image/png;base64,(JPEG 改成 image/jpeg),例如 <img src="data:image/png;base64,iVBOR...">。反过来,把整段 data URI 粘贴到解码模式也能直接还原成图片。

我的数据会被上传吗?

不会。编码、解码、文件读取和图片预览都在你的浏览器里完成,数据不会发送到服务器,也不会被保存。

Base64 是加密吗?

不是。Base64 只是一种编码方式,任何人都能还原出原文,不能用来保护密码或机密数据。

为什么转成 Base64 后文件变大了?

Base64 把每 3 个字节变成 4 个字符,所以体积约增加 33%,因此只适合放小文件。

怎么查看 JWT 里的内容?

JWT 由三段组成、以 . 分隔。选择“解码”并勾选“URL-safe”,粘贴中间那段就能看到 JSON 内容;这只是解码,无法验证签名是否有效。

参考来源