什么是Base64 编码 / 解码?
Base64 工具在文本与 Base64 字符串之间双向转换,正确处理中文等多字节字符,并支持把 + / 替换为 - _ 的 URL-safe 变体。编码与解码都在浏览器内完成,内容不会离开设备。
怎么用Base64 编码 / 解码?
- 1在左侧输入原文或 Base64 字符串。
- 2选择方向:编码或解码,工具会即时给出结果。
- 3需要放进 URL 或 JWT 时,勾选 URL-safe 变体。
- 4解码失败时检查字符串是否被截断或缺少补位的 = 号。
在代码里怎么实现?
一次性操作用上面的工具,重复性工作建议固化到脚本或项目里。
JavaScript
Python
Shell
// 正确处理中文:先转成 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 变体。
相关工具
全部工具文件 Base64 转换
File to Base64
文件转 Base64 与 Data URI,文件不上传
URL 编码 / 解码
URL Encoder & Decoder
URL 编码解码,区分整串与参数两种语义
HTML 实体转义 / 反转义
HTML Entity Encoder
HTML 实体转义与反转义
Hex 与文本互转
Hex to Text Converter
文本与十六进制互转,支持多种分隔风格
Unicode 转义 / 还原
Unicode Escape Converter
Unicode 转义与还原,支持三种写法
哈希计算(MD5 / SHA)
Hash Generator
计算 SHA-1/256/384/512 与 MD5 摘要