Base64 编码解码工具

即时编码解码 Base64 文本。支持 UTF-8,全程在浏览器中完成。

0 个字符
0 个字符
自动判断方向:有效的 Base64 → 文本,否则 文本 → Base64。

关于 Base64 编码解码工具

这个 Base64 工具完全在你的浏览器中运行。在左侧输入或粘贴文本,点击 编码 即可在右侧得到 Base64 字符串;或在左侧粘贴 Base64 字符串,点击 解码 还原原始文本。整个过程不会向服务器发送任何数据,并正确处理完整的 Unicode(UTF-8)文本——包括 emoji、中文、日文及其他非 ASCII 字符。

什么是 Base64?

Base64 是一种二进制到文本的编码方案,它使用 64 个字符的字母表将二进制数据转换为可打印的 ASCII 字符序列:A–Za–z0–9+/,并用 = 进行填充。每 3 个输入字节会变成 4 个 Base64 字符,因此输出始终是安全的纯文本字符串,可以通过为文本设计的系统传输。

Base64 的使用场景

  • 数据 URL —— 将小图片、字体或文件以 data:image/png;base64,... 的形式直接嵌入 HTML/CSS/JS。
  • 邮件附件(MIME) —— 二进制文件经 Base64 编码后可通过仅支持文本的 SMTP 传输。
  • JWT 令牌 —— JSON Web Token 的 header 和 payload 使用 Base64URL 字符串编码。
  • 在 JSON / XML 中嵌入图片 —— 当协议只能传输文本时,Base64 让二进制数据以内联方式携带。
  • Basic Auth 头 —— HTTP Authorization: Basic <base64(用户:密码)>
  • Source Map 与证书 —— 密钥和源码内容常以 Base64 形式存储。

为什么 UTF-8 处理很重要

浏览器内置的 btoa()atob() 只能处理 Latin-1 字符。如果直接把中文、日文、emoji 或任何码点超过 255 的字符传给 btoa(),会抛出 InvalidCharacterError。本工具通过标准的 UTF-8 往返模式绕过此限制:

utf8ToBase64(str) = btoa(unescape(encodeURIComponent(str)))
base64ToUtf8(b64) = decodeURIComponent(escape(atob(b64)))

这样 "你好" 会被编码为 5L2g5aW9,再解码回 "你好",全程不会乱码——正是现代 Base64 工具应有的表现。

使用方法

  1. 在左侧输入框中输入或粘贴文本或 Base64 字符串。
  2. 点击编码(文本 → Base64)或解码(Base64 → 文本),结果会显示在右侧。
  3. 使用互换可将输出移回输入框,方便你在任一方向继续操作。
  4. 使用复制输出将结果复制到剪贴板,或清空重置两个文本框。
  5. 打开实时模式可在输入时自动转换——工具会自动判断方向。

常见问题

我的数据会被上传吗? 不会。所有编码解码都通过 JavaScript 在本地浏览器中完成。页面加载后可离线使用。

支持中文、日文和 emoji 吗? 支持。工具使用 UTF-8 安全的编码模式,任何 Unicode 文本都能正确编码解码。

解码后文本是乱码怎么办? 可能是你尝试解码的内容不是有效的 Base64,或原内容使用了不同的方案编码(例如 Base64URL,用 -_ 代替 +/)。请确保输入长度是 4 的倍数且只包含合法的 Base64 字符。

有长度限制吗? 唯一限制是浏览器可用内存。数 MB 的字符串也能处理,但超大输入可能稍慢并影响页面响应。

Base64 和 Base64URL 有什么区别? Base64URL 是 URL 安全的变体,将 + 替换为 -/ 替换为 _,并通常省略 = 填充。常用于 JWT 和 URL 查询参数。