// uint8array转为base64字符串constuint8arrayToBase64=function(u8Arr){try{letCHUNK_SIZE=0x8000;//arbitrary numberlet index =0;let length = u8Arr.length;let result ='';let slice;while(index < length){
slice = u8Arr.subarray(index, Math.min(index +CHUNK_SIZE, length));
result += String.fromCharCode.apply(null, slice);
index +=CHUNK_SIZE;}// web image base64图片格式: "data:image/png;base64," + b64encoded;// return "data:image/png;base64," + btoa(result);returnbtoa(result);}catch(e){throw e;}}// base64字符串转为uint8array数组constbase64ToUint8Array=function(base64String){try{let padding ='='.repeat((4- base64String.length %4)%4);let base64 =(base64String + padding).replace(/\-/g,'+').replace(/_/g,'/');let rawData =atob(base64);let outputArray =newUint8Array(rawData.length);for(let i =0; i < rawData.length;++i){
outputArray[i]= rawData.charCodeAt(i);}return outputArray;}catch(e){throw e;}}// 判断是否jsonconstisJson=function(_str){if(typeof _str ==='string'){try{JSON.parse(_str);returntrue;}catch(e){}}returnfalse;}// base64加密constbase64Encode=function(rawStr){if(typeof rawStr ==='undefined'){returnnull;}let result;try{
result =btoa(unescape(encodeURIComponent(JSON.stringify(rawStr))));}catch(e){throw e;}return result;}// base64解密constbase64Decode=function(base64Str){if(base64Str){// 解密可能存在错误,所以需要trytry{let parsedStr =decodeURIComponent(escape(atob(base64Str)));if(isJson(parsedStr)){// 有的字符串不可以json恢复
parsedStr =JSON.parse(parsedStr);}return parsedStr;}catch(e){}}returnnull;}
nodejs处理base64的转换
// uint8array转base64constuint8arrayToBase64=(value)=>{// 必须定义 binary 二进制return Buffer.from(value,'binary').toString('base64');}constbase64ToUint8array=(value)=>{
value = Buffer.from(value,'base64').toString('binary');let len = value.length;let outputArray =newUint8Array(len);for(let i =0; i < len;++i){
outputArray[i]= value.charCodeAt(i);}return outputArray;}// 判断是否jsonconstisJson=function(_str){if(typeof _str ==='string'){try{JSON.parse(_str);returntrue;}catch(e){}}returnfalse;}// base64加密constbase64Encode=(value)=>{if(typeof value ==='undefined'){returnnull;}returnnewBuffer(JSON.stringify(value),'binary').toString('base64');}// base64解密constbase64Decode=(value)=>{
value =newBuffer(value,'base64').toString('binary');if(isJson(value)){
value =JSON.parse(value);}return value;}