解码裸 Base64 字符串(不需要 data: 前缀)
如果你的字符串以 iVBORw0KGgo 开头,而不是 data:image/png;base64,,那来对地方了。这个解码器从不要求你补前缀。
任何格式都接受:带前缀、纯串、折行、URL 编码、URL-safe,或者已经坏掉的。
图片会显示在这里
在左侧粘贴即可,不需要点按钮。全部在你的浏览器里完成。
什么时候会用到
- 数据库字段或 JSON 里只存了编码后的载荷,MIME 类型另存他处。
- 从 SQL 客户端或消息队列查看器里复制的值,包装层已经被剥掉。
- 在做数据迁移之前,想确认库里存的二进制到底是不是图片。
别的 Base64 工具为什么在这里失败
前缀是很多工具判断格式的唯一依据。没有它,要么直接拒绝输入,要么把整段当成普通文本。
有些工具要求你先从下拉框里猜一个 MIME 类型,才肯开始解码 —— 这个顺序是反的,字节本身已经说明了它是什么。
还有些工具会无条件补上 data:image/png;base64,,于是一段 JPEG 载荷被标成 PNG,最后渲染成一张裂图。
常见问题
不告诉它格式,它凭什么知道?
常见的图片格式都以固定的字节签名开头:PNG 是 89 50 4E 47,JPEG 是 FF D8 FF,GIF 是 47 49 46 38。把开头几个字符解码出来就能读到这个签名,格式是数据自己带出来的信息。
我的字符串既没有前缀,结尾也没有等号,有问题吗?
没问题。填充(等号)只是为了让长度凑成 4 的倍数,不少编码器本来就不写。解码器会自动补回去,并在「已自动修复」列表里告诉你补了几个,不会让你猜输入有没有被动过。
这看着像 Base64,但解出来不是图片。
这确实可能,工具会直接说明,而不是给你一张裂图。它会报告解码后的体积和前 32 字节的十六进制。如果这些字节以 1F 8B 开头,那是 gzip 数据;以 50 4B 开头则是 ZIP。两者都不是图片,补任何前缀都改变不了这一点。
能直接粘一整行日志,而不是只粘字符串吗?
通常可以。如果周围的文字明显只是标签(比如 image: 或时间戳),解码器会取出其中最长的连续 Base64 片段,并告诉你丢弃了其余内容。这个判断刻意保守:当多余字符夹在载荷中间而不是两端时,它会报错,而不是悄悄交给你一张被截断的图。