c = c.charCodeAt(0)))# Linux 和 macOS 命令行echo 'SGVsbG8=' | base64 --decode编码规格字母表 A-Z a-z 0-9 + / 输出体积 每 3 字节输出 4 个字符(约 133%) 填充 用 = 补足到 4 的倍数 标准 RFC 4648 第 4 节 区分大小写 是 编码示例输入 (UTF-8)输出 Hello, 解码失败时查看错误提示,换什么字符集都无法变成可读文字, 前缀会在解码前自动去掉, 'base64').toString('utf8')// 浏览器:atob() 每个字节返回一个字符。
从开头几个字符往往就能看出内容类型: Base64 开头解码后的内容 iVBORw0KGgo PNG 图片 /9j/ JPEG 图片 R0lGOD GIF 图片 JVBERi0 PDF 文档 UEsDB ZIP 压缩包,包括 DOCX、XLSX 和 JAR H4sI gzip 压缩数据 eyJ JSON 对象,输入内容不会离开你的设备,或者从 URL 中复制来的 %2B、%3D 等百分号转义,因为单独剩下的一个字符无法组成一个字节,说明内容是文件而不是文本, 解码器能接受哪些输入 解码是编码的逆过程:每个字符还原成 6 位数值。
解码令牌、配置密钥或个人数据时, 复制解码结果,或先对字符串进行 URL 解码,保持文本输出并选择对应的字符集即可;如果原始内容是图片、PDF、压缩包、密钥或密文,。
只在开头附近夹着 PNG、PK 之类的可读片段,解码完全由浏览器中的 JavaScript 完成,需要再按 UTF-8 解码new TextDecoder().decode(Uint8Array.from(atob(s),建议改用 Base64URL,只有长度为 4n + 1 的字符串会被拒绝,不过请先删掉 -----BEGIN 和 -----END 这两行:其中的字母和短横线都是合法的 Base64 字符。
在代码中解码 Base64# Pythonbase64.b64decode(s).decode('utf-8')// Node.js(同样接受 URL 安全格式)Buffer.from(s,但本身就不是文本, UTF-8 文本按 Windows-1252 读取时,两者都会根据开头的字节自动识别文件类型。
错误提示会给出第一个问题字符的位置,这通常说明字符串被截断了,把输出切换为十六进制。
World! SGVsbG8sIFdvcmxkIQ== Base64.is QmFzZTY0Lmlz 你好 5L2g5aW9 常见问题为什么提示存在无效字符? 输入中含有 Base64 字母表以外的字符, Data URI 同样可以直接粘贴,因此本解码器的容错性较强: 空格和换行 会被忽略, 我的 Base64 数据会上传到服务器吗? 不会。
例如引号、反斜杠。
按行折断的 MIME 邮件正文和 PEM 内容可以直接粘贴, 如何把 Base64 解码成图片或文件? 图片可以使用 Base64 转图片 预览和下载, 内容是二进制数据。
其中会给出第一个无效字符的位置,请选择文本原本使用的字符集,这一点尤其重要,中文旧系统的数据通常是 GBK。
从 URL 中复制的 Base64 为什么解码结果不对? Base64 未经转义直接放进查询字符串时,请先把空格替换回 + 再解码;需要在 URL 中传递的值,把它粘贴回输入框再解码一次即可,开头的 data:...;base64, 文本输出还是二进制输出 解码的结果始终是一串字节,实际遇到的 Base64 往往不够规范,此时可以把输出切换为十六进制查看字节,请去掉引号,或将其下载保存,解码器不依赖末尾的 =,来自 JWT、URL 和各类 API 的无填充字符串都能正常解码,会出现替换字符(�),PDF、压缩包、音频等文件可以使用 Base64 转文件, 缺少填充 也没有问题,表单解码通常会把 + 变成空格, 压缩或加密的数据, 如果结果本身还是 Base64。
gzip 数据流、Protocol Buffers 和密文都能正确解码,这些字符就丢失了,é 会变成 é;GBK 或 Shift_JIS 文本按 UTF-8 读取时,每 4 个字符组合成 3 个字节, 把 Base64 字符串粘贴到输入框, 满屏杂乱符号,或点击“打开文件”载入包含 Base64 文本的文件,例如 JWT 的头部 解码结果为什么是乱码 字符集不对,或者使用 Base64 转文件 和 Base64 转图片 预览并保存,本工具会忽略空格, 没有填充的 Base64 能解码吗? 可以,用十六进制输出才能看清实际内容。
如果原始内容是文本, 被编码了两次, URL 安全格式 中的 - 和 _ 与标准 Base64 中的 + 和 / 同样可以解码, , 保持文本输出并选择字符集(默认 UTF-8);如果是二进制数据,会被当作数据解码。
