LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

【JavaScript】微信小程序base64编码解码以及utf-8解码

admin
2026年8月17日 17:51 本文热度 45

function base64_encode (str) { // 编码,配合encodeURIComponent使用

    var c1, c2, c3;

    var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

    var i = 0, len = str.length, strin = '';

    while (i < len) {

        c1 = str.charCodeAt(i++) & 0xff;

        if (i == len) {

            strin += base64EncodeChars.charAt(c1 >> 2);

            strin += base64EncodeChars.charAt((c1 & 0x3) << 4);

            strin += "==";

            break;

        }

        c2 = str.charCodeAt(i++);

        if (i == len) {

            strin += base64EncodeChars.charAt(c1 >> 2);

            strin += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));

            strin += base64EncodeChars.charAt((c2 & 0xF) << 2);

            strin += "=";

            break;

        }

        c3 = str.charCodeAt(i++);

        strin += base64EncodeChars.charAt(c1 >> 2);

        strin += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));

        strin += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));

        strin += base64EncodeChars.charAt(c3 & 0x3F)

    }

    return strin

}

function base64_decode (input) { // 解码,配合decodeURIComponent使用

    var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

    var output = "";

    var chr1, chr2, chr3;

    var enc1, enc2, enc3, enc4;

    var i = 0;

    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

    while (i < input.length) {

        enc1 = base64EncodeChars.indexOf(input.charAt(i++));

        enc2 = base64EncodeChars.indexOf(input.charAt(i++));

        enc3 = base64EncodeChars.indexOf(input.charAt(i++));

        enc4 = base64EncodeChars.indexOf(input.charAt(i++));

        chr1 = (enc1 << 2) | (enc2 >> 4);

        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);

        chr3 = ((enc3 & 3) << 6) | enc4;

        output = output + String.fromCharCode(chr1);

        if (enc3 != 64) {

            output = output + String.fromCharCode(chr2);

        }

        if (enc4 != 64) {

            output = output + String.fromCharCode(chr3);

        }

    }

    return utf8_decode(output);

}

function utf8_decode (utftext) { // utf-8解码

    var string = '';

    let i = 0;

    let c = 0;

    let c1 = 0;

    let c2 = 0;

    while (i < utftext.length) {

        c = utftext.charCodeAt(i);

        if (c < 128) {

            string += String.fromCharCode(c);

            i++;

        } else if ((c > 191) && (c < 224)) {

            c1 = utftext.charCodeAt(i + 1);

            string += String.fromCharCode(((c & 31) << 6) | (c1 & 63));

            i += 2;

        } else {

            c1 = utftext.charCodeAt(i + 1);

            c2 = utftext.charCodeAt(i + 2);

            string += String.fromCharCode(((c & 15) << 12) | ((c1 & 63) << 6) | (c2 & 63));

            i += 3;

        }

    }

    return string;

}


阅读原文:点击这里


该文章在 2026/8/17 17:51:30 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-2  粤公网安备44030602007207号