Base64 解码出来全是乱码,是新手最容易碰到的坑。乱码几乎都指向同一个根源:编码和解码时用的字符编码不一致。
常见原因
- 字符编码不一致:编码时用 UTF-8,解码时却按 GBK 解释,中文就会乱码。应统一使用 UTF-8。
- 用了错误的变体:URL 安全变体用 - 和 _,标准 Base64 用 + 和 /,混用会导致解析失败或结果错乱。
- 字符串被截断:复制时少了一截,或末尾等号丢失,解码会报错或输出残缺。
- 混入空白字符:换行、空格混进 Base64 文本时,部分实现会报错。
- 原本就不是文本:解码的是图片等二进制文件,直接当文本看当然是乱码,应另存为文件。
排查方法
先把字符串完整复制,确认首尾字符和等号数量,再确认来源用的是标准还是 URL 安全变体,最后检查文本是否夹带换行。逐项排除后,绝大多数乱码都能解决。