Base64 编码解码工具

在任意一边输入,另一边即时更新。支持 Base64(标准和 URL 安全)、二进制、十六进制、URL 编码和 HTML 实体,中文、emoji 和重音字母都能正确处理。

文本

格式
下载 .txt

两个框都可以编辑。把编码后的文本粘贴到右侧即可解码,粘贴时会自动识别格式。

Base64

有效
下载 .txt

全部在浏览器中运行。输入或拖入的内容都不会上传。

文件转 Base64

输出为
下载 .txt

怎么进行 Base64 编码和解码

这个 Base64 编码解码工具可以同时双向工作。在左侧输入纯文本,右侧就出现 Base64;在右侧粘贴 Base64,左侧就出现解码后的文字。Hello 会变成 SGVsbG8=,粘贴 SGVsbG8= 又会还原成 Hello。

同样的两个框还能处理另外四种格式:二进制、十六进制、URL 编码和 HTML 实体。在右侧粘贴内容时,工具会分析它并切换到对应的格式,所以一串 0 和 1 会被当作二进制读取,不用你手动选择。如果你不小心把编码后的字符串粘贴到了纯文本框里,它会提示你改为解码。

Base64 到底做了什么

Base64 把任意字节转换成 64 个安全字符(A–Z、a–z、0–9、+ 和 /),让二进制数据能通过为文本设计的系统传输:邮件、JSON、HTML 属性、环境变量。它每次取 3 个字节(24 位),拆成四段 6 位,每段写成一个字符。

Man → 01001101 01100001 01101110 → 010011 010110 000101 101110 → TWFu

输入不是 3 字节的整数倍时,末尾用 = 号填充:Ma 是 TWE=,M 是 TQ==。Base64 不是加密。任何人一秒钟就能解开,所以千万不要以为用 Base64 写的密码就藏住了。

标准还是 URL 安全?

+ 和 / 字符会破坏网址和文件名,所以 URL 安全的变体改用 - 和 _,并且通常省略填充。字节 FB FF 在标准 Base64 中是 +/8=,在 URL 安全形式中是 -_8。JWT 令牌和很多 API 密钥用的都是 URL 安全形式。解码时不需要选择:两种字母表都能接受,有没有填充都行,空格和换行也会被忽略。

如果邮件正文或 PEM 证书需要 MIME 格式的输出,请勾选每 76 字符换行。

常见字符在各种格式下的写法

这里的所有转换都经过 UTF-8,几乎所有网站和 API 都用这种编码。这就是为什么 é 占两个字节,一个 emoji 占四个字节。跳过这一步的工具会把带重音的字母弄成乱码,这也是大家对在线 Base64 解码器最常见的抱怨。

字符Base64二进制十六进制URL
AQQ==0100000141A
aYQ==0110000161a
空格IA==0010000020%20
&Jg==0010011026%26
éw6k=11000011 10101001C3 A9%C3%A9
€4oKs11100010 10000010 10101100E2 82 AC%E2%82%AC

文本转二进制,二进制转文本

选择二进制,文本的每个字节都会写成 8 位。Hi 会变成 01001000 01101001。关闭字节之间加空格可以得到一整串不间断的数字。

要把二进制翻译成文字,就把这些位粘贴到右侧框里。每 8 位读作一个字节。有些网站用 7 位表示 ASCII(1001000 1101001);只要各组之间用空格分隔,就会在前面补一个 0 并正确读取。没有空格时,总位数必须是 8 的倍数,错误提示会告诉你找到了多少位,方便你找出缺少的那一位。

十六进制的原理相同,每个字节两位数字。解码时,0x、\x、冒号和逗号之类的前缀和分隔符都会被去掉,所以可以直接从调试器或 C 数组里粘贴。

URL 编码和解码

URL 编码用 % 加两位十六进制数字替换不安全的字符:空格变成 %20,é 变成 %C3%A9。请选择正确的编码范围:

HTML 实体

HTML 模式会转义可能破坏标记的五个字符:& < > " 和 '。所以 <b> 会变成 &lt;b&gt;,显示为文字而不会让内容变粗。解码时既能识别 &eacute; 和 &nbsp; 这样的命名实体,也能识别 &#8364;(€)这样的数字实体。

图片转 Base64 Data URI

把文件拖到底部的框里,就能得到它的 Base64,可以输出为 Data URI、纯字符串、<img> 标签或 CSS 背景。大小读数会显示代价。Base64 会多出三分之一,所以只对 1 KB 图标这类小东西划算,这时省下一次 HTTP 请求比多出的字节更重要。对于 200 KB 的照片,普通图片文件更好:它更小,能被缓存,也不会让你的 HTML 或 CSS 变得臃肿。

文件大小Base64 大小
1 KB(1,024 字节)1,368 个字符
10 KB13,656 个字符
50 KB68,268 个字符
1 MB1,398,104 个字符

反过来也可以。在右侧粘贴 Base64 或 Data URI,如果内容不是文本,工具会读取开头的字节来判断文件类型(PNG、JPEG、GIF、WebP、PDF、ZIP、MP3 等),为图片显示预览,并提供带正确扩展名的下载。

不上传任何内容。这一点在这里比平时更重要,因为大家解码的字符串往往是 API 密钥、会话令牌和邮件附件。

常见问题

怎么解码 Base64?

把 Base64 粘贴到右侧框里,解码后的文字会立刻出现在左侧。例如 SGVsbG8= 解码为 Hello。如果结果是图片或 PDF 而不是文字,会出现“保存为文件”按钮。

怎么把文字转成二进制?

选择“二进制”,在左侧输入文字。每个字节变成 8 位,所以 Hi 会变成 01001000 01101001。英文以外的字符,比如 é,在 UTF-8 中占两个或更多字节,因此是 16 位或更多。

怎么把二进制代码转回文字?

选择“二进制”,把 0 和 1 粘贴到右侧框里。每 8 位读作一个字节,所以 01001000 01101001 读作 Hi。用空格分隔的 7 位一组也可以,会在前面补一个 0。

怎么把图片转成 Base64 Data URI?

把图片拖到底部的文件框里,然后复制结果。PNG 会变成 data:image/png;base64,iVBORw0KGgo…,可以直接粘贴到 img 的 src 或 CSS 背景里。结果大约比原文件大 33%。

为什么 Base64 比原文件大约 33%?

Base64 把每 3 个字节写成 4 个字符,所以 30 KB 的图片会变成约 40 KB 的文本。MIME 格式每 76 个字符换一行,还会再多出约 2.6%。所以 Data URI 只适合小文件。

Base64 和 URL 安全的 Base64 有什么区别?

URL 安全的 Base64 把 + 换成 -、把 / 换成 _,并且常常省略 = 填充,这样文本就能放进网址或文件名。JWT 令牌用的就是它。这个解码器会自动识别两种字母表。

网址里的 %20 和 %3A 怎么解码?

选择“URL”,把文本粘贴到右侧。%20 变成空格,%3A 变成冒号,所以 https%3A%2F%2Fexample.com 读作 https://example.com。如果文本来自表单(空格写成 +),请勾选“空格编码为 +”。

我的文字或文件会发送到服务器吗?

不会。所有编码和解码都用 JavaScript 在你的浏览器里运行,所以 API 密钥、令牌和私人文件都可以放心处理。