Base64 是用普通文本字符表示二进制数据的方法。图片、文档和文字最终都可以表示成字节。当系统需要把字节放进文本字段时,Base64 提供一种可逆表示,接收方之后可以解码还原。
一个简单例子
Hello 包含五个 ASCII 字节,编码后是 SGVsbG8=。解码会得到原来的五个字节,再按文本解释成 Hello。末尾等号属于编码结构,不属于原单词。
文本: Hello
十六进制字节: 48 65 6c 6c 6f
Base64: SGVsbG8=
还原字节: 48 65 6c 6c 6f
可以先在编码器里输入示例,再把输出复制到解码器,比较结果。接着尝试中文或 emoji。文字必须先通过 UTF-8 等字符编码转换成字节;Base64 本身不定义语言或字符集。
常见应用位置
JSON 中的二进制字段、Data URI 中的内嵌图片,以及某些令牌的可读部分,都可能使用 Base64。具体含义由外层格式提供。单独一串 Base64 不会说明原文件名、MIME 类型、字符编码或可信程度。
Data URI 会增加 data:image/png;base64, 之类前缀。它描述载荷,但不属于 Base64 字母表。某些解码器理解这个封装,另一些只接受逗号之后的部分。应选择对应入口或模式,而不是随意删除陌生字符。
三个常见误解
第一,Base64 不是加密,解码不需要秘密。第二,它不会缩小文件,普通输出通常约大三分之一。第三,解码结果不一定是文字,图片字节显示成“乱码”并不意味着解码失败。
失败时检查原来源、字母表和截断情况;成功后选择合适视图:有效文字用文本,检查字节用 Hex,二进制用文件下载。规范和测试向量见 RFC 4648。