← 返回首页

Base64 在线编解码

支持 UTF-8 中文、URL-safe 模式、批量换行、图片转 Base64 data URI。纯浏览器本地计算,数据不上传。

原文(明文)
字符数:0 字节数:0
Base64 结果
长度:0
图片转 Base64
🖼
点击选择图片,或拖拽图片到此处
支持 PNG、JPEG、WebP、GIF、SVG;文件上限 1 MB
预览
广告位(Google AdSense)

Base64 编码怎么用

Base64 是把任意二进制数据转成纯文本的编码方式,最常见的用途有三类:一是接口调试时把 JSON、XML 或表单内容塞进只接受文本的字段(比如 HTTP Basic 认证的凭据、JWT 的载荷);二是把小体积图片或字体文件内联进 CSS、HTML,省掉一次网络请求(也就是 data URI);三是在邮件、配置文件、日志等"只认文本"的场合安全传递二进制内容。操作步骤很简单:在上方的"原文"输入框粘贴要编码的文本,点击「Base64 编码」,结果就会出现在下方输入框,点击「复制」即可拿走;反向操作时把 Base64 字符串贴进下方输入框,点「Base64 解码」还原为原文。注意切换上方的「URL-safe」和「每 76 字符换行」两个选项,会直接影响输出的格式。

关于 URL-safe 变体:标准 Base64 用 + 和 / 两个字符表示数值 62 和 63,还用 = 做补位(padding)。但 +、/、= 在 URL 里都有特殊含义——放进路径或查询参数后会被服务器错误解析。所以 RFC 4648 定义了 URL-safe 变体:用 - 代替 +、用 _ 代替 /,并允许省略补位。什么时候勾选?要把编码结果放进 URL、cookie、JWT 的 segment 时勾选 URL-safe;只是本地存储或接口正文字段,用标准字母表即可。两种格式可以互相无损转换,但拿到别人的 Base64 字符串时如果解码失败,先检查是不是混用了两种字母表。

图片什么时候该转 Base64

小图标(如 1×1 像素透明图、小箭头、简单 Logo)转成 Base64 内联到 CSS 或 HTML 里,可以省掉一次 HTTP 请求,对首屏加载有利。但大图(几百 KB 以上)千万别内联:Base64 编码后体积膨胀约 33%,而且把二进制内容塞进 HTML/CSS 会拖慢解析速度,反而让首屏更慢。本站图片转 Base64 区块设置了 1 MB 上限,超过会提示"大图请外链,内联会拖慢首屏"。转换后可直接复制三种常用片段:纯 Base64 字符串、CSS background 属性、HTML img 标签 src 属性,按需粘贴即可。

常见问题

我的输入会被上传到服务器吗?不会。本页面是纯静态页面,编码和解码全部在你的浏览器内用 JavaScript 完成,不发送任何网络请求,也不在你的设备上存储输入内容。关掉页面,一切清零。涉及敏感内容(密钥、token、内部接口数据)也可以放心使用。

为什么中文编码后解码回来出现乱码?99% 的情况是编码和解码两端用的字符集不一致。Base64 本身只处理字节序列,"你"这个字在 UTF-8 下是 3 个字节、在 GBK 下是 2 个字节。本工具统一使用 UTF-8:如果编码来源是系统默认 GBK 的老程序(比如某些 Windows 工具、部分 Java 老项目),先在原端确认字符集,或用 iconv 之类的工具转成 UTF-8 再编码。

结尾的 = 号是干什么用的,可以删掉吗?Base64 每 3 个字节编码为 4 个字符,字节数不是 3 的倍数时用 = 补齐,1 个 = 代表补 1 字节、2 个代表补 2 字节。删掉后多数解码器仍能推算出原文,但严格按 RFC 4122 校验的程序(例如 JWT 签名校验)会拒绝非规范输入,建议保留原样。

能把图片直接 Base64 成 data URI 吗?支持——用上方「图片转 Base64」区块选择或拖入图片即可自动转换。浏览器会使用 FileReader.readAsDataURL() 读取文件并生成带 MIME 前缀的 data URI,同时提供纯 Base64(去前缀)、CSS background、HTML img 三种常用片段,点击对应「复制」按钮即可拿走。支持 PNG、JPEG、WebP、GIF、SVG、ICO、BMP、AVIF 格式,文件上限 1 MB。ICO(favicon 文件)转出的 data URI 可直接写进 <link rel="icon"> 标签内联小图标,省掉一次网络请求;TIFF 格式因浏览器原生无法解码(预览会失败)暂不支持。

Base64 是加密吗?安全吗?不是。Base64 是可逆的编码转换,任何人拿到字符串都能瞬间解码,它不提供任何机密性,也压缩不了体积(编码后体积约增大 33%)。保护敏感内容请用真正的加密算法(AES、RSA 等),Base64 只负责"让二进制安全地伪装成文本"。