Base64 编解码工具

文本与 Base64 双向转换,正确处理中文和 Emoji,支持 URL 安全字符集。不发送任何数据。

隐私保证:编码解码全部由你的浏览器执行。btoa 这类内置函数在本地运行,数据不经过网络。
结果会显示在这里

Base64 编解码工具使用说明

Base64 是一种把二进制数据转换成 64 个可打印字符的编码方式。它的作用不是加密,而是让数据能够安全地通过只支持文本的通道传输——比如放在 URL 参数里、塞进 JSON 字符串里、写进邮件正文里、或者嵌在 HTML 的 data URI 中。

常见使用场景

关于中文乱码问题

很多人用 JavaScript 的 btoa() 编码中文时会报错或得到乱码,原因是 btoa 只接受 Latin-1 范围内的字符,而中文超出这个范围。本工具内部先用 TextEncoder 把文本转成 UTF-8 字节数组,再做 Base64 编码,因此中文、日文、Emoji 都能正确编码和还原。解码时同样先解出字节数组再用 TextDecoder 还原成文本。

标准 Base64 与 URL 安全 Base64 的区别

标准 Base64 的字符集里包含 + 和 /,还有末尾用于补齐的 =。这三个字符在 URL 里有特殊含义:+ 会被解析成空格,/ 是路径分隔符,= 是参数赋值符。所以放进 URL 或文件名时需要用 URL 安全变体,把 + 换成 -、/ 换成 _,并去掉末尾的 =。JWT 用的就是这种变体。

解码时,本工具会把 URL 安全字符自动还原成标准字符再处理,两种变体都能解,不用手动改。

常见问题

Base64 是加密吗?能用来保护密码吗?

不是加密,只是编码。任何人都能无条件解码,不需要密钥。千万不要用 Base64 "加密"密码、密钥或隐私数据。Base64 里的 base64 前面那个 base 指的是 64 个字符,和"基础版加密"没有任何关系。

为什么编码后体积变大了?

Base64 用 4 个字符表示 3 个字节,所以体积会膨胀约 33%。这是用空间换兼容性的必要代价。如果是为了减小体积,应该用 gzip 压缩而不是 Base64。

图片也能编码吗?

这个页面处理的是文本。不过你可以先用工具把图片转成 Base64(或用命令行 base64 image.png),然后单独处理它的文本形式。浏览器端理论上也能读文件,但那属于文件工具,本站会在后续版本加上。

换行会影响解码吗?

不会。解码前工具会自动去掉所有空白字符(空格、换行、制表符),所以无论有没有换行都能正常解开。

相关工具