跳到主内容
UniKit

文件 Base64 转换

把本地文件读取成 Base64 或 Data URL,也可以把 Base64 文本还原成文件下载,全部在浏览器本地完成,不上传。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

文件只在本地读取,不会上传到任何服务器。

输出

还没有选择文件,选择一个文件后会在浏览器本地读取,不会上传。

这个工具能做什么

  • 把图片、字体、PDF 之类的小文件转成 Base64 或 Data URL,直接内联进 CSS、HTML 或 JSON,省掉一次额外请求。
  • 把接口返回的 Base64 字段还原成文件下载下来,确认里面是图片还是被截断的乱码。
  • 调试邮件源码、日志或抓包结果里的 `data:image/png;base64,...`,看看原文件是什么类型、多大。
  • 需要在文档或工单里贴一个自包含的小图标时,用 Data URL 比附带文件更方便。

示例

输入

Hello, UniKit!

输出

SGVsbG8sIFVuaUtpdCE=

这是把这段文本按 UTF-8 读成字节后再做标准 Base64 的结果。文件模式下先选文件、再复制输出,字节来源换成文件内容,算法完全相同。

常见问题

大文件能转吗?会不会崩?

能转,但 Base64 会把体积撑大约三分之一,超过 2 MB 的文件还会在内存里多存一份字符串,页面会给出「文件较大」的提示。几百 KB 的图标和字体没问题,几十 MB 的视频建议不要走 Data URL,直接引用文件更合适。

Data URL 和纯 Base64 有什么区别?

Data URL 在 Base64 前面加了一段元信息:`data:<MIME 类型>;base64,`。浏览器看到它就能直接当成图片或字体用,而纯 Base64 只是一串字符,需要你自己补 MIME。反过来,工具只接受 base64 形式的 Data URL,纯文本 Data URL(`data:text/plain,abc`)会报「只支持 base64 编码的 Data URL」。

反解出来的文件类型是怎么定的?

如果输入是 Data URL,MIME 类型直接从里面读;如果只是裸 Base64,就按你填的下载文件名后缀去猜(`logo.png` → image/png),猜不到就用 application/octet-stream。下载下来的字节内容永远和 Base64 解出来的一致,扩展名只影响系统怎么打开它。

为什么解码后预览区显示「二进制内容,无法按文本预览」?

因为解出来的字节不是合法的 UTF-8 文本(比如 PNG 文件头)。这只是预览的限制,字节本身是完整的,点「下载文件」拿到的内容不会有任何损失。

文件会上传到服务器吗?

不会。文件通过浏览器的 FileReader 在本地读成字节数组,编码、解码和下载都由 Blob 在本地完成,页面不发送任何网络请求,服务器上也留不下任何副本。

关键词:base64filedata url文件转换编码下载encodedecodefile to base64base64 to file

同类工具