Base64 编码解码工具
即时编码解码 Base64 文本。支持 UTF-8,全程在浏览器中完成。
关于 Base64 编码解码工具
这个 Base64 工具完全在你的浏览器中运行。在左侧输入或粘贴文本,点击 编码 即可在右侧得到 Base64 字符串;或在左侧粘贴 Base64 字符串,点击 解码 还原原始文本。整个过程不会向服务器发送任何数据,并正确处理完整的 Unicode(UTF-8)文本——包括 emoji、中文、日文及其他非 ASCII 字符。
什么是 Base64?
Base64 是一种二进制到文本的编码方案,它使用 64 个字符的字母表将二进制数据转换为可打印的 ASCII 字符序列:A–Z、a–z、0–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 工具应有的表现。
使用方法
- 在左侧输入框中输入或粘贴文本或 Base64 字符串。
- 点击编码(文本 → Base64)或解码(Base64 → 文本),结果会显示在右侧。
- 使用互换可将输出移回输入框,方便你在任一方向继续操作。
- 使用复制输出将结果复制到剪贴板,或清空重置两个文本框。
- 打开实时模式可在输入时自动转换——工具会自动判断方向。
常见问题
我的数据会被上传吗? 不会。所有编码解码都通过 JavaScript 在本地浏览器中完成。页面加载后可离线使用。
支持中文、日文和 emoji 吗? 支持。工具使用 UTF-8 安全的编码模式,任何 Unicode 文本都能正确编码解码。
解码后文本是乱码怎么办? 可能是你尝试解码的内容不是有效的 Base64,或原内容使用了不同的方案编码(例如 Base64URL,用 - 和 _ 代替 + 和 /)。请确保输入长度是 4 的倍数且只包含合法的 Base64 字符。
有长度限制吗? 唯一限制是浏览器可用内存。数 MB 的字符串也能处理,但超大输入可能稍慢并影响页面响应。
Base64 和 Base64URL 有什么区别? Base64URL 是 URL 安全的变体,将 + 替换为 -、/ 替换为 _,并通常省略 = 填充。常用于 JWT 和 URL 查询参数。