btoa和atob是window对象的两个函数,其中btoa是binary to ascii,用于将binary的数据用ascii码表示,即Base64的编码过程,而atob则是ascii to binary,用于将ascii码解析成binary数据,看一个例子:
// Define the string
var string = 'Hello World!';
// Encode the String
var encodedString = btoa(string);
console.log(encodedString); // Outputs: "SGVsbG8gV29ybGQh"
// Decode the String
var decodedString = atob(encodedString);
console.log(decodedString); // Outputs: "Hello World!"
可以看到,字符串“Hello World!”已被Base64编码和解码。但是,atob和btoa不能编码Unicode字符:
var string = "Hello, 中国!";
window.btoa(string);
那如何用这种方式支持汉字呢?这里我们可以先将带有非Latin1字符的串先用encode