首页 > 编程 > HTML > 正文

HTML5原生支持Base64编码解码

2020-03-24 18:11: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) | (k >> 4);                g = ((k & 15) << 2) | (h >> 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 < c.length);            return d        };        window.atob = function(c) {            var d = "";            var m, k, h = "";            var l, j, g, f = "";            var e = 0;            do {                l = a.indexOf(c.charAt(e++));                if (l < 0) {                    continue                }                j = a.indexOf(c.charAt(e++));                if (j < 0) {                    continue                }                g = a.indexOf(c.charAt(e++));                if (g < 0) {                    continue                }                f = a.indexOf(c.charAt(e++));                if (f < 0) {                    continue                }                m = (l << 2) | (j >> 4);                k = ((j & 15) << 4) | (g >> 2);                h = ((g & 3) << 6) | f;                d += String.fromCharCode(m);                if (g != 64) {                    d += String.fromCharCode(k)                }                if (f != 64) {                    d += String.fromCharCode(h)                }                m = k = h = "";                l = j = g = f = ""            } while (e < c.length);            return d        }    }    var b = {        encode: function(c) {            return window.btoa(unescape(encodeURIComponent(c)))        },        decode: function(c) {            return decodeURIComponent(escape(window.atob(c)))        }    };    window.BASE64 = b})();

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表