欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

原生 JS 的 Base64 转码

程序员文章站 2023-08-18 08:27:07
JavaScript 原生提供两个 Base64 相关的方法: btoa():任意值转为 Base64 编码 atob():Base64 编码转为原来的值 encodeURIComponent() 该方法会转码除了语义字符之外的所有字符,即元字符也会被转码。 decodeURIComponent() ......

javascript 原生提供两个 base64 相关的方法:

  • btoa():任意值转为 base64 编码
  • atob():base64 编码转为原来的值
注意:这两个方法不适合非 ascii 码的字符,会报错。

要将非 ascii 码字符转为 base64 编码,必须中间插入一个转码环节:
  • encodeuricomponent()  该方法会转码除了语义字符之外的所有字符,即元字符也会被转码。
base64 编码转为原来的值时,同样需要转码:
  • decodeuricomponent()  该方法是 encodeuricomponent()方法的逆运算。
示例:
const str = "hello, world!";
const strtobase64 = btoa(encodeuricomponent(str));
console.log(strtobase64); // sgvsbg8lmkmlmjb3b3jszce=
const base64tostr = decodeuricomponent(atob(strtobase64));
console.log(base64tostr); // hello, world!