在线Base64编码/解码工具
工具介绍
Base64是一种将二进制数据转换为ASCII字符串的编码方式,常用于在文本环境中传输二进制数据。本工具支持两种模式:文本模式下可对任意文本进行Base64编解码,完整支持中文和emoji;图片模式下可将图片转换为Base64 Data URL(可直接嵌入HTML/CSS),或将Base64 Data URL还原为图片预览和下载。所有操作均在浏览器本地完成,数据不上传服务器,安全可靠。
两种模式说明
| 文本模式 | 对文本内容进行Base64编码或解码,支持中文、英文、特殊字符、JSON、HTML等各类文本,完整兼容UTF-8多字节字符 |
|---|---|
| 图片模式 | 上传图片自动生成Base64 Data URL,或输入Data URL解析预览图片并支持下载,支持PNG/JPG/GIF/WebP/BMP/SVG格式 |
Base64编码原理
| 项目 | 说明 |
|---|---|
| 编码字符集 | A-Z、a-z、0-9、+、/ 共64个字符,加上填充符= |
| 编码方式 | 每3字节二进制数据编码为4个Base64字符 |
| 体积变化 | 编码后体积约为原始数据的4/3(约133%) |
| 填充规则 | 不足3字节时用=填充,1字节补2个=,2字节补1个= |
| Data URL | data:[MIME];base64,格式可直接嵌入HTML/CSS |
Base64字符集
| 字符 | 说明 |
|---|---|
| 0 | 十进制0 |
| A | 十进制0 |
| Z | 十进制25 |
| a | 十进制26 |
| z | 十进制51 |
| 0 | 十进制52 |
| 9 | 十进制61 |
| + | 十进制62 |
| / | 十进制63 |
| = | 填充字符 |
使用步骤
使用技巧
常见问题
Q1: Base64编码后体积会变大吗?
是的,Base64编码后体积约为原始数据的4/3(约133%)。因为Base64将每3字节数据编码为4个字符,所以会增大约33%。对于图片,建议仅对小图标(10KB以内)使用Base64内嵌,大图不建议使用Base64以免增加页面体积。
Q2: 中文编码后为什么会变长?
因为Base64基于字节编码。中文字符在UTF-8中通常占用3个字节,编码后会变成4个Base64字符。例如「你」的UTF-8字节是E4 BD A0(3字节),Base64编码后变成「5L2g」(4字符)。Emoji通常占用4个字节,编码后会变成更多字符。
Q3: 解码失败提示"无效的Base64格式"怎么办?
常见原因:1) 输入包含非Base64字符(除A-Z a-z 0-9 + / =外);2) =填充符位置或数量不正确;3) 字符串长度不是4的倍数;4) 复制时缺失了部分字符。建议检查输入是否完整,去除多余的空格和换行。图片Data URL需以 data:image/...;base64, 开头。
Q4: Data URL有什么用途?
Data URL可将图片直接嵌入HTML/CSS,无需额外HTTP请求。用途:1) 小图标内联,减少请求数;2) CSS背景图;3) 邮件中的图片;4) 离线应用资源;5) 跨域资源共享的替代方案。但注意大图Base64会增加HTML/CSS体积,反而影响性能。
Q5: 支持哪些图片格式?
支持PNG、JPG/JPEG、GIF、WebP、BMP、SVG等主流图片格式,最大文件大小5MB。上传后自动识别MIME类型并生成对应的Data URL。SVG虽然是矢量格式,但也支持Base64编码。建议优先使用WebP格式,它在保持画质的同时体积更小。
Q6: 我的数据会被上传吗?
绝对不会。本Base64工具所有编解码、图片读取操作全程在浏览器本地独立完成,使用浏览器内置的btoa/atob API和FileReader API,无需联网操作,全程不产生网络传输。原始文本、图片和编码结果都不会发送、记录或缓存到任何服务器,关闭页面后所有数据即刻清空。
应用场景
| 应用场景 | 说明 |
|---|---|
| Web开发 | 将小图标转Base64内嵌HTML/CSS,减少HTTP请求 |
| 数据传输 | 在仅支持文本的接口中传输二进制数据 |
| 邮件嵌入 | 将图片以Base64形式嵌入HTML邮件 |
| 数据存储 | 将二进制数据以Base64形式存储在JSON/XML中 |
| 接口调试 | 解码Base64格式的接口响应数据 |
| 前端优化 | 小资源Base64化提升首屏加载速度 |
| 配置文件 | 在配置文件中嵌入字体、图标等资源 |
| 数据URL | 生成可直接使用的data: URL方案 |