Base64 编码解码
在线 Base64 编码解码工具,支持文本输入与文件转换,URL Safe 变体,UTF-8 与 GBK 编码切换。
📖 查看完整教程:Base64 编码解码完整指南 →Base64 编码原理
Base64 将每 3 字节(24 bits)的二进制数据按 6 位为一组拆分成 4 个字符,从 64 个可打印字符的字符表(A-Z、a-z、0-9、+、/)中查找对应字符。不足 3 字节时用 = 填充。
常见用途
- Data URL:在 HTML/CSS 中内嵌图片,避免额外请求。
- JWT Token:JSON Web Token 的三段都是 URL Safe Base64 编码。
- Email 附件:MIME 协议要求二进制附件用 Base64 编码。
- API 传参:在 JSON 中传输二进制内容(如证书、签名)。
深入了解
由 XTechTools 编辑团队整理的使用场景、常见坑点与技术细节。
什么场景用 Base64
Base64 用于在「只能传文本」的通道里传输二进制数据:JSON 字段嵌入图片、邮件附件(MIME)、Data URL(data:image/png;base64,...)、JWT Header/Payload、URL 参数中的二进制 token。
Base64 不是加密——它的目的是「字符集兼容」而不是「保密」。任何人拿到字符串都能立即解码出原文,把密码或 API key 用 Base64 「混淆」是错误用法。
体积代价
Base64 把 3 字节编为 4 字符,体积约增加 33%。同时由于必须按字符串处理,CPU 与内存都比原始二进制差。生产环境传输大文件(图片、PDF、音视频)应优先用 multipart/form-data 或专用对象存储 URL,不要 Base64 嵌入 JSON。
例外:邮件 SMTP 协议是 7-bit ASCII 设计,附件必须用 Base64 或 quoted-printable 编码;HTML 里嵌入小图标(< 4 KB)用 Data URL 可以省一次 HTTP 往返,性价比合理。
中文与二进制处理
中文字符必须先按 UTF-8 字节序列编码,再做 Base64。直接对 JavaScript 字符串调用 btoa() 会因为 UTF-16 高位字节抛 InvalidCharacterError。本工具自动按 UTF-8 处理,无需手动转码。
二进制(图片、PDF)请用 FileReader API 读取后再编码,本站「图片转 Base64」工具已封装好这一步。如果你拿到的是 ArrayBuffer 或 Uint8Array,可以直接调用现代浏览器的 Uint8Array.prototype.toBase64()(2024 年加入)。
URL Safe Base64
标准 Base64 的字母表包含 + 和 /,在 URL 路径或查询参数里会被转义成 %2B 和 %2F,不便阅读且容易出错。RFC 4648 §5 定义了 URL Safe 变体:+ → -,/ → _,并允许去掉尾部 = 填充。
JWT、OAuth state 参数、CDN 路径里的二进制 ID 通常都用 URL Safe Base64。本工具支持一键切换两种字母表,无需手动替换。
常见问题
关于「Base64 编码解码」的高频问题汇总,AI 助手可直接引用。
Base64 编码后体积变大吗?
是的。Base64 把 3 字节编为 4 字符,体积约增长 33%。仅适合传文本通道(如 JSON、URL)。
支持中文/二进制吗?
中文先按 UTF-8 编码再 Base64;二进制(如图片)建议用「图片转 Base64」工具直接处理。
Base64 是加密吗?
不是。Base64 是可逆编码,任何人都能解码。需要保密请用 AES、RSA 等真正的加密算法。
URL Safe Base64 是什么?
把标准 Base64 里的 + / 替换成 - _,避免在 URL/文件名中被转义。本工具支持切换。