Base64 在线编码解码
在线 Base64 编码解码工具,中文与 emoji 原样互转,支持 URL 安全变体与每 76 字符换行,自动忽略换行与空格,解码出错会指出位置,全部在浏览器本地完成,内容不上传。
这个 Base64 在线工具能做什么
Base64 是把任意数据用 64 个可打印字符表示出来的编码方式,接口返回、JWT、邮件附件、图片内联、配置文件里到处都是它。这个工具解决两件事:手上有一段 Base64 看不懂,或者有一段原文要转成 Base64。
- 原文转 Base64:中文、emoji、换行、JSON 都能正确编码。页面不用浏览器自带的 btoa,而是先把文本按 UTF-8 编成字节再做 Base64,所以「你好😀」这种混排不会报错,解回来还是原样。
- Base64 转原文:自动忽略换行、空格、制表符和全角空格,从邮件头、证书、网页源码里复制出来的折行内容不需要手工清理。标准字母表和 URL 安全字母表都能识别,不用先选变体。
- 两种字母表:标准变体用加号和斜杠表示第 63、64 个字符,URL 安全变体改用减号和下划线,放进 URL、文件名、Cookie 里不会被转义破坏。
- MIME 换行:编码结果可以选每 76 个字符折一行,方便贴进邮件正文或按行比对的场景。
- 出错指位置:解码遇到非法字符时,会告诉你是第几个字符、那一位是什么,而不是笼统一句「格式错误」。
- 不显示乱码:解出来的字节不是合法 UTF-8 文本时(图片、压缩包、加密结果),页面不会糊一堆乱码给你,而是如实说明并给出原始字节的十六进制预览。
- 一键反向:「结果回填并反向」把输出放回输入框并翻转方向,一步就能验证「编码再解码等于原文」。
怎么用
- 先选「转换方向」:要把原文变成 Base64 就选编码,要把 Base64 变回原文就选解码。
- 编码时可以选择字母表变体和是否换行;解码时这两项不生效,因为两种字母表都会自动识别、空白一律忽略。
- 把内容粘进输入框,结果会实时出现,也可以点「开始转换」。输入框下面会一直显示当前用量和上限。
- 点「复制结果」把输出复制回剪贴板。想验证可逆性就点「结果回填并反向」,再点一次「开始转换」,应当回到最初的内容。
关于数据安全
编码和解码全部由浏览器里的 JavaScript 完成,输入内容不会上传到任何服务器,页面也没有引入任何外部脚本或统计代码。接口返回、含 token 的调试数据、带手机号的测试报文都可以放心贴进来。
常见问题
为什么编码中文和 emoji 时,有些在线工具会报错或变成乱码?
因为浏览器原生的 btoa 只接受每个字符都小于 256 的字符串,遇到中文和 emoji 会直接报错;有些工具用了错误的兜底写法,先把文本按单字节拆开再编码,解回来自然是一堆乱码。正确做法是先把文本按 UTF-8 编成字节,再做 Base64,本工具走的就是这条路径,所以「你好😀」这种混排能一次编对、解回来还是原样。
Base64 是加密吗?能用来保护密码吗?
不是加密,只是编码。Base64 不含任何密钥,任何人拿到字符串都能还原出原文,所以它只能用来让数据在只支持文本的通道里安全传输,绝不能用来保存密码或手机号。想验证很简单:把字符串粘到本工具里点解码,能读出来就说明它没有被加密。真正需要保密时请用 HTTPS 传输、用加盐哈希保存口令。
解码时提示「不是合法的 Base64 字符」怎么办?
提示里的位置就是问题所在。最常见的原因有三种:一是只复制到了整串的一部分,开头或结尾缺了字符;二是把 URL 参数里的 Base64 直接粘过来,其中的加号在传输时被当成了空格;三是把要编码的原文错粘到了解码方向。本工具会自动忽略换行和空格,所以从邮件头、证书里复制出来的折行内容不需要手工删换行。
为什么 Base64 编码以后体积会变大?
因为 Base64 用 4 个字符表示 3 个字节,体积会变成原来的约 1.33 倍。它把原本不可打印的字节全部映射到 A-Z、a-z、0-9、加号、斜杠这 64 个可打印字符上,这样二进制数据才能安全地放进 JSON、URL、邮件正文和纯文本配置文件而不被破坏。
我输入的原文和 Base64 会被上传吗?
不会。编码和解码全部由你浏览器里的 JavaScript 完成,页面不会把输入内容发送到任何服务器,也没有账号和登录。这一点对处理接口返回、含 token 的调试数据尤其重要,可以直接贴进来,关掉页面后不会留下记录。