浏览器/路由query传递大数据:将数据转为 base64

214 阅读1分钟
  1. 要将数据转换为Base64编码,可以使用JavaScript的内置方法btoa()。这个方法可以将字符串转换为Base64编码的字符串。以下是使用btoa()方法将数据转换为Base64编码的示例代码:
let data = "Hello World!";
let base64Data = btoa(data);
console.log(base64Data); // 输出 "SGVsbG8gV29ybGQh"

 

需要注意的是,btoa()方法只能处理ASCII字符,对于非ASCII字符(如中文字符),需要先对字符串进行编码,然后再使用btoa()方法进行转换。可以使用encodeURIComponent()方法对字符串进行编码,然后再使用btoa()方法进行转换。以下是将中文字符串转换为Base64编码的示例代码:

let data = "你好!";
let encodedData = encodeURIComponent(data);
let base64Data = btoa(encodedData);
console.log(base64Data); // 输出 "JUU0JUJEJUEwJUU1JUE1JUJE"

 
  1. 在需要将Base64编码的数据转换回原始数据时,可以使用JavaScript的内置方法atob()。这个方法可以将Base64编码的字符串转换为原始数据。以下是使用atob()方法将Base64编码的数据转换为原始数据的示例代码:
let base64Data = "SGVsbG8gV29ybGQh";
let data = atob(base64Data);
console.log(data); // 输出 "Hello World!"

 

需要注意的是,使用atob()方法将Base64编码的数据转换为原始数据时,如果Base64编码的字符串中包含非法字符,会抛出一个DOMException错误。因此,在使用atob()方法之前,应该先检查Base64编码的字符串是否合法。

回到标题,在进行路由跳转传递query数据时,需先将数据JSON.stringify处理后再调用btoa方法处理。