免费免登录的 Base64 在线工具:文本与 Base64 互相转换(中文按 UTF-8 编码不乱码),图片转 Base64 Data URI、Base64 还原成图片或文件,支持 URL 安全变体、去掉 = 填充与 76 字符换行,全部在浏览器本地完成。
四个方向都能转:文本转 Base64、Base64 转文本、图片或任意文件转 Base64、Base64 还原成图片或文件。输入后结果实时出现,不需要点按钮。
文本按 UTF-8 编码,所以中文、日文、emoji 都能正确往返——很多在线工具用浏览器自带的 btoa 直接处理,遇到中文会直接报错或输出乱码,原因就在下面这一节。
Base64 只能编码字节,不能编码字符。浏览器自带的 btoa 把每个字符当成 Latin-1 单字节处理,遇到中文这种多字节字符就会抛 InvalidCharacterError。正确做法是先用 TextEncoder 把文本转成 UTF-8 字节,再对字节做 Base64;解码时反过来,先解出字节再用 TextDecoder 还原成文本。
本工具两个方向都走 UTF-8 字节通道,所以「中文 → Base64 → 中文」这条链路是闭合的,emoji 也一样(一个 emoji 通常是 4 字节)。
体积会变成原来的 4/3 左右,也就是增大约 33%。末尾的 = 是填充符:原始字节数不是 3 的倍数时用它补齐,很多接口和库要求去掉填充,所以这里给了开关。
图片转出来的 Data URI 形如 data:image/png;base64,iVBOR...,可以直接写进 <img src>、CSS 的 background-image 或 canvas。小图标内联进 HTML 能省掉一次请求,但 Base64 会比原图大 33%,且无法被单独缓存,所以只适合几十 KB 以内的小图。
反向还原时,工具会读取文件头判断真实类型,而不是盲信 Data URI 里的声明。如果头部写的 image/png 但内容其实是 JPEG,会明确告诉你两者不一致,并按实际内容决定下载的扩展名。
单文件上限 10MB。这不是技术极限,而是浏览器文本框的实用边界:10MB 文件编码后是约 13MB 的字符串,再大页面输入框会明显卡顿。更大的文件建议先用「图片压缩」压小。
Base64 只是编码,任何人都能一键还原,它只负责让二进制数据能安全地放进文本协议里传输。不要把密码、密钥、身份证号等内容用 Base64 处理后当作「加密」发给别人。
另外要注意:把带账号密码的 URL 或 token 贴进任何网页工具都有风险。本工具的数据不出浏览器,但如果你复制结果发到聊天工具里,那条记录就离开你的设备了。
本工具免费、免登录、不限次数,编解码全部由浏览器的 JavaScript 完成。文件只被读进当前页面的内存,不会发起任何上传请求,关闭页面后即丢弃。服务端只提供工具目录与使用策略。
Base64 用 64 个可打印字符表示数据,每 3 个字节编码成 4 个字符,所以体积约为原来的 4/3,增大约 33%。再加上末尾可能出现的 = 填充符。
不会。工具按 UTF-8 取字节后再编码,解码时再按 UTF-8 还原,中文和 emoji 都能原样往返。部分在线工具直接调用 btoa,只支持 Latin-1,遇到中文会报错或输出乱码。
标准 Base64 的字符集里有 + 和 /,这两个字符在 URL 与文件名中需要转义,所以 URL 安全变体把它们替换成 - 和 _。JWT、URL 参数、文件名场景应该用这个变体。
工具会指出是第几个字符出错。常见原因是复制时混进了中文标点、多带了引号、把结果中间截断,或者这段内容其实是百分号编码(%E4%B8%AD)而不是 Base64。
不能。Base64 是可逆编码,任何人都能还原,它只解决「二进制放进文本协议」的问题,不提供任何保密性。需要保密请用 HTTPS 传输并做真正的加密。
好处是可以直接内联进 HTML/CSS,省一次请求,也不需要额外的图片服务器。坏处是体积增大约 33%、无法被浏览器单独缓存、会让 HTML 变大,所以只适合几十 KB 以内的小图标。