爱滋美食网
您的当前位置:首页HTML5原生支持Base编码解码

HTML5原生支持Base编码解码

来源:爱滋美食网


该方法仅支持IE10+、chrome、等现代浏览器。

适合用于原生支持的

(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
})();
显示全文