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 等加密算法。