首页 小程序 微信小程序中使用Base64编码解码

微信小程序中使用Base64编码解码

//创建js - base64.js文件

(function(global) {
	'use strict';
	var global = global || {};
	var _Base64 = global.Base64;
	var version = "1.0.0";
	var buffer;
	var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
	var b64tab = function(bin) {
		var t = {};
		for (var i = 0,
		l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
		return t;
	} (b64chars);
	var fromCharCode = String.fromCharCode; // encoder stuff  var cb_utob = function(c) {   
	if (c.length < 2) {
		var cc = c.charCodeAt(0);
		return cc < 0x80 ? c: cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))) : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) + fromCharCode(0x80 | (cc & 0x3f)));
	} else {
		var cc = 0x10000 + (c.charCodeAt(0) - 0xD800) * 0x400 + (c.charCodeAt(1) - 0xDC00);
		return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07)) + fromCharCode(0x80 | ((cc >>> 12) & 0x3f)) + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) + fromCharCode(0x80 | (cc & 0x3f)));
	}
};
var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
var utob = function(u) {
	return u.replace(re_utob, cb_utob);
};
var cb_encode = function(ccc) {
	var padlen = [0, 2, 1][ccc.length % 3],
	ord = ccc.charCodeAt(0) << 16 | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
	chars = [b64chars.charAt(ord >>> 18), b64chars.charAt((ord >>> 12) & 63), padlen >= 2 ? '=': b64chars.charAt((ord >>> 6) & 63), padlen >= 1 ? '=': b64chars.charAt(ord & 63)];
	return chars.join('');
};
var btoa = global.btoa ?
function(b) {
	return global.btoa(b);
}: function(b) {
	return b.replace(/[\s\S]{1,3}/g, cb_encode);
};
var _encode = buffer ?
function(u) {
	return (u.constructor === buffer.constructor ? u: new buffer(u)).toString('base64')
}: function(u) {
	return btoa(utob(u))
};
var encode = function(u, urisafe) {
	return ! urisafe ? _encode(String(u)) : _encode(String(u)).replace(/[+\/]/g,
	function(m0) {
		return m0 == '+' ? '-': '_';
	}).replace(/=/g, '');
};
var encodeURI = function(u) {
	return encode(u, true)
};
// decoder stuff  var re_btou = new RegExp([ '[\xC0-\xDF][\x80-\xBF]',    '[\xE0-\xEF][\x80-\xBF]{2}', '[\xF0-\xF7][\x80-\xBF]{3}'].join('|'),'g');
var cb_btou = function(cccc) {
	switch (cccc.length) {
	case 4:
		var cp = ((0x07 & cccc.charCodeAt(0)) << 18) | ((0x3f & cccc.charCodeAt(1)) << 12) | ((0x3f & cccc.charCodeAt(2)) << 6) | (0x3f & cccc.charCodeAt(3)),
		offset = cp - 0x10000;
		return (fromCharCode((offset >>> 10) + 0xD800) + fromCharCode((offset & 0x3FF) + 0xDC00));
	case 3:
		return fromCharCode(((0x0f & cccc.charCodeAt(0)) << 12) | ((0x3f & cccc.charCodeAt(1)) << 6) | (0x3f & cccc.charCodeAt(2)));
	default:
		return fromCharCode(((0x1f & cccc.charCodeAt(0)) << 6) | (0x3f & cccc.charCodeAt(1)));
	}
};
var btou = function(b) {
	return b.replace(re_btou, cb_btou)


特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。