在微信中不支持使用btoa方法怎么解决?

btoa是浏览器中用于将字符串转换为 Base64 编码的方法,但在微信小程序中并不支持。

随着wx.arrayBufferToBase64() 和 wx.base64ToArrayBuffer()在新版本库中被废除,最好实现btoa效果的方法是自己去自定义一个函数去实现,下面是一个自定义btoa函数:

export function base64Encode(str) {
    let CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
    let out = '', i = 0, len = str.length, c1, c2, c3, enc1, enc2, enc3, enc4;
    while (i < len) {
        c1 = str.charCodeAt(i++);
        c2 = str.charCodeAt(i++);
        c3 = str.charCodeAt(i++);
        enc1 = c1 >> 2;
        enc2 = ((c1 & 3) << 4) | (c2 >> 4);
        enc3 = ((c2 & 15) << 2) | (c3 >> 6);
        enc4 = c3 & 63;
        if (isNaN(c2)) {
            enc3 = enc4 = 64;
        } else if (isNaN(c3)) {
            enc4 = 64;
        }
        out += CHARS.charAt(enc1) + CHARS.charAt(enc2) + CHARS.charAt(enc3) + CHARS.charAt(enc4);
    }
    return out;
}

// 使用示例
let strToEncode = "你好,世界!";
let encodedStr = base64Encode(strToEncode);
console.log(encodedStr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值