在线工具集

Base64 编码解码

在线 Base64 编码解码工具,支持文本输入与文件转换,URL Safe 变体,UTF-8 与 GBK 编码切换。

📖 查看完整教程:Base64 编码解码完整指南 →

Base64 编码原理

Base64 将每 3 字节(24 bits)的二进制数据按 6 位为一组拆分成 4 个字符,从 64 个可打印字符的字符表(A-Z、a-z、0-9、+、/)中查找对应字符。不足 3 字节时用 = 填充。

常见用途

深入了解

由 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/文件名中被转义。本工具支持切换。