Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
把文本或整个文件编码成 Base64,再解回来——包括 data: URI,也包括 JWT 使用的 URL 安全字母表。文本先经过 UTF-8,这正是浏览器内置的 `btoa` 完全做不到的那一步。
MIME 里那套 +/ 字母表。
文本或文件输入
拖入任意文件
在这个标签页里读取,不上传。
Base64 输出
0个字符的 Base64。
btoa 做不到这件事——它对任何超过 U+00FF 的字符直接拒收——所以这里的编码器是自己写的,不是借来的。怎么用
输入或拖入你手上的东西
文本框接受任何文本;拖放区接受任何文件,并分片编码,大文件不会卡死标签页。在编码模式下粘进来的东西如果已经像 Base64,页面会提议切换方向。
选字母表
Base64 是 MIME 的 `+/` 字母表。Base64URL 是 `-_` 那一套,放进 URL 路径或 JWT 段的是它。两者不能互换——一种的解码器会拒绝另一种。
决定填充和折行
末尾的 `=` 有些解析器要求,而 JWT 里禁止。76 列折行是 MIME 的行长,只在输出要进邮件头或 PEM 形状的文件时才有意义,别处都不需要。
如果你要的是 data URI,就拿它
拖入的文件同时会生成带 MIME 类型的 `data:` URI,面板会显示它比原文件大了多少——约三分之一,这个数字决定了内联到底值不值。
常见问题
为什么中文在这里没问题,在别处却乱码?
因为文本在 Base64 之前先编码成了 UTF-8 字节。浏览器里的 `btoa` 遇到任何高于 U+00FF 的字符就抛错,而常见的变通办法——`unescape(encodeURIComponent(…))`——是多数网站在用的,而且悄悄出错。这里的编码器是专门写出来避开这两者的。
Base64 是加密吗?
不是,这一点很重要。它是一种编码——任何人都能解码,包括这个页面。Base64 里的密码或令牌是明摆着的。要保密,本站的文本加密工具用口令做 AES-GCM。
解码输出是空的,但没有报错。
那说明字节解码正常,但不是 UTF-8 文本——一张 PNG、一个 zip、一段 protobuf。这种情况下面板会切换到十六进制预览和一个下载按钮;文本框没有东西可显示,因为根本没有文本。
能编码多大的文件?
编码本身是分块的,不会锁死页面,但结果是一个比文件大三分之一的单个字符串,全部放在内存里。几十 MB 是浏览器标签页开始抱怨的地方,而且那么大的 data: URI 在哪里都没法用。
可以从这些接进来
图片转 Base64
Image to Base64 / Data URI
把图片编码成 Base64 字符串,或直接生成可粘进 CSS、HTML、JSON 的 data URI。
文本转二进制与十六进制
Text to Binary / Hex
按选定的编码,在文本与二进制、八进制、十进制、十六进制之间互转。
URL 编码解码
URL Encoder & Decoder
对 URL 和查询参数做百分号编解码,可选整条 URL 或单个组成部分两种模式。
十六进制查看器
Hex Viewer
把任意文件展成偏移/十六进制/ASCII 三栏,用魔数判断格式,并高亮搜索命中的位置。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
十六进制查看器
Hex Viewer
把任意文件展成偏移/十六进制/ASCII 三栏,用魔数判断格式,并高亮搜索命中的位置。
图片转 Base64
Image to Base64 / Data URI
把图片编码成 Base64 字符串,或直接生成可粘进 CSS、HTML、JSON 的 data URI。
JWT 解码
JWT Decoder
解出头部和载荷,按本地时间显示过期时刻,并用你给的密钥验证签名。
URL 编码解码
URL Encoder & Decoder
对 URL 和查询参数做百分号编解码,可选整条 URL 或单个组成部分两种模式。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。
文本哈希计算
Text Hash
算出字符串的 MD5、SHA-1、SHA-256、SHA-384、SHA-512 和 CRC-32,输出可选大写或 Base64。