📅  最后修改于: 2023-12-03 15:13:36.554000             🧑  作者: Mango
Base64是一种编码方法,用于将二进制数据编码为可打印的ASCII字符。Base64编码将3个字节的数据划分为4个6位元组,每个6位元组转换为一个可打印字符。因此,Base64编码后的数据比原来的数据略长(约1/3),但非常适合在邮件等文本环境中传输二进制数据,因为可打印字符不会被文本处理器改变。
在JavaScript中,可以使用btoa()
函数将字符串转换为Base64编码,也可以使用atob()
函数将Base64编码的字符串解码为原始字符串。
将字符串编码为Base64字符串:
const str = 'Hello, world!';
const encoded = btoa(str);
console.log(encoded);
// → "SGVsbG8sIHdvcmxkIQ=="
将Base64字符串解码为原始字符串:
const encoded = 'SGVsbG8sIHdvcmxkIQ==';
const decoded = atob(encoded);
console.log(decoded);
// → "Hello, world!"
虽然btoa()
和atob()
在现代浏览器中广泛支持,但在古老的浏览器中可能不被支持。在使用这些函数之前,最好检查它们在用户的浏览器中是否可用。例如:
if (typeof btoa === 'function' && typeof atob === 'function') {
// 使用 btoa() 和 atob() 函数
} else {
// 这些函数不可用
}
Base64编码后的字符串长度取决于原始字符串的长度。在某些浏览器中,使用btoa()
编码一个过长的字符串可能会导致“字符串太长”的错误。在这种情况下,您可以将原始字符串拆分为更小的部分,分别对其进行Base64编码或使用第三方库来解决此问题。
在JavaScript中,使用btoa()
和atob()
函数可以轻松地将字符串转换为Base64编码或从Base64编码中解码字符串。但是,请注意浏览器的兼容性以及字符串长度的限制。