Day7 开发者工具箱

Base64 在线编解码

中文不乱码、支持 URL 安全变体,也能把文件转成 Base64 / Data URI

文本编码 / 解码

文件 → Base64 文件不会上传,仅在本地读取

Base64 是什么

Base64 是一种把任意二进制数据用 64 个可打印字符表示的编码方式,常用于在只支持文本的协议里传输二进制内容,例如 HTTP 基本认证、JWT、邮件附件、以及把图片直接内嵌到 CSS/HTML 里的 Data URI。需要明确的是:Base64 不是加密,它只是编码,任何人都能还原原文,所以不要用它来保护密码或密钥。

为什么中文容易乱码

Base64 本身只处理字节,不处理字符。中文在 UTF-8 下占 3 个字节,如果编码时按 Latin-1 处理、解码时按 UTF-8 解析,就会出现乱码。本工具编码时先用 UTF-8 把文本转成字节再编码,解码时反向还原,因此中文、emoji 都不会乱码。

URL 安全变体

标准 Base64 使用 +/ 两个字符,它们出现在 URL 或文件名里需要转义。RFC 4648 定义的 URL 安全变体把 + 换成 -/ 换成 _,并常省略末尾的 = 补齐符(JWT 就采用这种形式)。解码时本工具会自动识别这两种变体。

关于体积

Base64 编码后体积约为原数据的 1.33 倍(每 3 字节变 4 字符)。所以图片转 Base64 内嵌到网页里虽然能减少一次请求,但会明显增大 HTML/CSS 体积,一般只建议用于小图标。

常见问题

解码失败提示「不是合法的 Base64」怎么办?

常见原因是字符串被截断(末尾缺少 =,本工具已自动补齐),或中间夹杂了复制带进来的换行、空格、引号。工具会自动清理空白字符,如果仍然失败,请确认内容确实是一段 Base64 而不是加密后的密文。

上传的文件会被保存吗?

不会。文件通过浏览器本地读取(FileReader),不会上传到服务器。

可以用它加密内容吗?

不可以。Base64 只是编码,任何人拿到都能解码出原文。需要保密请使用 AES 等加密算法。