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

HTML5原生支持Base64编码解码

程序员文章站 2022-03-21 16:09:19
...
该方法仅支持IE10+、chrome、等现代浏览器。

适合用于原生支持的

(function(){
    var Base64 = {
        encode : function(str){
            return window.btoa(unescape(encodeURIComponent(str)));
        },
        decode : function(str){
            return decodeURIComponent(escape(window.atob(str)));
        }
    };
    window.BASE64 = Base64;
})();

旧版本兼容

(function() {
    if (!window.btoa) {
        var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        window.btoa = function(c) {
            var d = "";
            var m, k, h = "";
            var l, j, g, f = "";
            var e = 0;
            do {
                m = c.charCodeAt(e++);
                k = c.charCodeAt(e++);
                h = c.charCodeAt(e++);
                l = m >> 2;
                j = ((m & 3) > 4);
                g = ((k & 15) > 6);
                f = h & 63;
                if (isNaN(k)) {
                    g = f = 64
                } else {
                    if (isNaN(h)) {
                        f = 64
                    }
                }
                d = d + a.charAt(l) + a.charAt(j) + a.charAt(g) + a.charAt(f);
                m = k = h = "";
                l = j = g = f = ""
            } while (e > 4);
                k = ((j & 15) > 2);
                h = ((g & 3)