Base64 编码与解码
将文本编码为 Base64,或将 Base64 解码回文本,支持标准字母表和 URL 安全字母表。
代码示例
可直接复制到你自己的项目中。每个示例只使用该语言的标准库,因此无需安装任何东西。
const text = 'Hello, wereld! 👋'
const bytes = new TextEncoder().encode(text)
const encoded = btoa(String.fromCharCode(...bytes))
console.log(encoded)它能做什么
Base64 能把任意字节变成由 64 个安全字符组成的纯文本,让二进制数据可以通过只处理文本的系统传输,例如邮件正文、JSON 字段、URL、data URI 和 HTTP 标头。这个工具可以把文本编码为 Base64,也可以把 Base64 解码回文本,全程在你的浏览器中完成。
如何使用
- 选择编码或解码。
- 输入或粘贴文本,也可以把文件拖到输入框上。
- 选择标准字母表(
+和/)或 URL 安全字母表(-和_),并决定是否添加=填充。 - 复制结果,或直接发送到另一个工具。
打开逐行选项,可以单独转换每一行,例如一列已编码的值。
示例
对 Hello, world! 编码,得到:
SGVsbG8sIHdvcmxkIQ==
同样的字节,使用 URL 安全字母表且不带填充:
SGVsbG8sIHdvcmxkIQ
须知
- Base64 是一种编码,不是加密:任何人都可以解码。
- 结果比输入大约多三分之一(每 3 个字节变成 4 个字符)。
- 文本默认按 UTF-8 转换。如果解码后的文本出现奇怪的字符,请选择它原本使用的字符集。
- JSON Web Token 使用不带填充的 URL 安全字母表。
什么是 Base64?
Base64 用 64 个可打印字符来表示二进制数据,因此可以通过只接受文本的系统传输,例如邮件正文、JSON 字段和 data URL。每 3 个字节变成 4 个字符,所以结果会大约增加 33%。
常见问题
什么时候应该使用 URL 安全字母表?
当结果要放进 URL 或文件名时使用。它会把 + 和 / 替换为 - 和 _。JWT 使用它,并且不带填充。
为什么解码后的文本显示奇怪的字符?
文本可能是用与你所选不同的字符集编码的。请尝试 ISO-8859-1,或确认数据是文本而不是文件。
Base64 是加密吗?
不是。任何人都能解码 Base64,所以它不会隐藏任何内容。请用它来传输数据,而不是保护数据。