我需要哪个文本工具
大多数文本工具其实是同一个编码器和解码器,只是用不同的预设打开,所以关键在于从正确的地方开始。
| 你的任务 | 工具 |
|---|---|
| 把文本转成 Base64 | Base64 编码器 或 文本转 Base64 |
| 读取 Base64 字符串 | Base64 解码器 或 Base64 转文本 |
| emoji 或非拉丁文字,逐字节精确的 UTF-8 | UTF-8 转 Base64、Base64 转 UTF-8 |
| Windows、.NET 或 PowerShell 的宽字符串 | UTF-16 转 Base64、Base64 转 UTF-16 |
| 仅限 7 位纯文本 | ASCII 转 Base64、Base64 转 ASCII |
| 检查字符串是否是有效的 Base64 | Base64 校验工具 |
| 修复换行、引号、缺失的填充或混用的字母表 | 修复 Base64 |
| 用于邮件的每行 76 字符格式 | MIME Base64 编码器 |
| 内含 JSON、XML、HTML 或 CSV 的 Base64 | Base64 转 JSON、Base64 转 XML、Base64 转 HTML、Base64 转 CSV |
| 为 data URI 或 API 编码标记语言 | HTML 转 Base64、XML 转 Base64 |
| 预估编码后的长度 | Base64 大小计算器 |
为什么字符集很重要
Base64 处理的是字节,对字符一无所知。文本在编码之前必须先变成字节,而字符集决定了怎么变:
| 文本 | UTF-8 | Windows-1252 | UTF-16LE |
|---|---|---|---|
é | w6k= | 6Q== | 6QA= |
Grüße | R3LDvMOfZQ== | R3L832U= | RwByAPwA3wBlAA== |
对于 Web、JSON 和大多数 API,UTF-8 是正确的默认选择。Windows API 和 PowerShell 的 -EncodedCommand 需要 UTF-16LE。传统字符集会出现在旧数据库、桌面软件导出的 CSV 以及部分邮件中。如果解码后的文本显示 é 而不是 é,说明 UTF-8 被当作 Windows-1252 读取了;在解码器中切换字符集,文本就正常了。
解码后的文本不对怎么办
- 随机符号和方框:Base64 中是二进制数据,比如图片、PDF 或 gzip 输出。请使用 Base64 转文件;对于
H4sI…开头的字符串,使用 gzip 解码器。 - 提示无效字符或长度错误:字符串在传输中被损坏了。校验工具 会显示问题位置,修复 Base64 能清理常见的问题。
- 能解码,但解出来还是 Base64:数据被编码了两次。对输出再解码一次即可。
- 字符串中有
-和_:这是 Base64URL,来自 JWT 或 URL。这里所有的解码器都接受它;Base64URL 工具 解释了两者的区别。
对于令牌、URL 以及 SAML 或 Kubernetes Secret 这类结构化载荷,请看 Web 与令牌工具。对于 Base32、Base58 或 hex 等其他编码,进制转换器 都能读取。
常见问题
解码 Base64 字符串应该用哪个工具?
先用 Base64 解码器。如果输出无法阅读,数据很可能是文件或压缩数据,Base64 转文件 会识别它的类型。如果文本中的重音字母不对,就换一个字符集。
为什么同样的文本在不同工具里得到的 Base64 不一样?
Base64 编码的是字节,文本要先通过字符集变成字节。é 从 UTF-8 编码是 w6k=,从 Windows-1252 是 6Q==,从 UTF-16LE 是 6QA=。请与另一方使用的字符集保持一致。
解码前需要先清理字符串吗?
通常不需要。解码器会忽略空白和换行,去掉引号和 data:…;base64, 前缀,接受 URL 安全字符,并补全缺失的填充,状态栏会说明修复了什么。对于损坏严重的输入,请使用 修复 Base64。