Base64 编码 / 解码

Base64 编码与解码,支持 UTF-8 与 URL-safe

浏览器内运算Base64 Encoder & Decoder工具型03编码与加密

什么是Base64 编码 / 解码

Base64 工具在文本与 Base64 字符串之间双向转换,正确处理中文等多字节字符,并支持把 + / 替换为 - _ 的 URL-safe 变体。编码与解码都在浏览器内完成,内容不会离开设备。

怎么用Base64 编码 / 解码

  1. 1在左侧输入原文或 Base64 字符串。
  2. 2选择方向:编码或解码,工具会即时给出结果。
  3. 3需要放进 URL 或 JWT 时,勾选 URL-safe 变体。
  4. 4解码失败时检查字符串是否被截断或缺少补位的 = 号。

在代码里怎么实现?

一次性操作用上面的工具,重复性工作建议固化到脚本或项目里。

// 正确处理中文:先转成 UTF-8 字节
const encode = (text) =>
  btoa(String.fromCharCode(...new TextEncoder().encode(text)));

const decode = (b64) =>
  new TextDecoder().decode(
    Uint8Array.from(atob(b64), (c) => c.charCodeAt(0)),
  );

常见错误与排查

现象成因修复
中文编码后解不回来,出现乱码直接对字符串调用 btoa,没有先按 UTF-8 编码成字节。编码前用 TextEncoder 转字节,解码后用 TextDecoder 还原。
Invalid character 报错字符串是 URL-safe 变体(含 - 或 _),或缺少末尾的 = 补位。勾选 URL-safe 选项,或把长度补齐到 4 的倍数。

常见问题

Base64 是加密吗?+

不是。Base64 只是把二进制数据表示为 ASCII 字符的编码方式,任何人都能直接解码,没有任何密钥参与。它用于安全传输而不是保密,敏感信息必须另外加密。

Base64 会让数据变大多少?+

大约增加三分之一。每 3 字节原始数据编码成 4 个字符,因此体积约为原始大小的 133%,再加上换行符开销。这也是不建议用 Base64 在 JSON 里传大文件的原因。

URL-safe 变体和标准 Base64 有什么区别?+

标准 Base64 使用 + 和 /,它们在 URL 中有特殊含义;URL-safe 变体把它们替换为 - 和 _,并且常省略末尾的 = 补位。JWT 使用的就是 URL-safe 变体。

相关工具

全部工具