适合用于原生支持的
(function(){
var Base = {
encode : function(str){
return window.btoa(unescape(encodeURIComponent(str)));
},
decode : function(str){
return decodeURIComponent(escape(window.atob(str)));
}
};
window.BASE = Base;
})();旧版本兼容
(function() {
if (!window.btoa) {
var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567+/=";
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 =
} else {
if (isNaN(h)) {
f =
}
}
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 != ) {
d += String.fromCharCode(k)
}
if (f != ) {
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.BASE = b
})();