var keyStr = "ABCDEFGHIJKLMNOP" + "QRSTUVWXYZabcdef" + "ghijklmnopqrstuv" + "wxyz0123456789+/" + "=%"; function encode64(input) { var result = /[\u4e00-\u9fa5]/.test(input); if(result){ var encode ='%25E5%25AD%2597%25E7%25AC%25A6%25E4%25B8%25B2%25E4%25B8%25AD%25E5%258C%2585'+ '%25E5%2590%25AB%25E4%25B8%25AD%25E6%2596%2587!%25E4%25B8%258D%25E8%2583%25BD%'+ '25E8%25BF%259B%25E8%25A1%258C%25E5%258A%25A0%25E5%25AF%2586!%25E8%25AF%25B7%25E8%'+ '25BF%259B%25E8%25A1%258C%25E5%25AD%2597%25E7%25AC%25A6%25E9%259B%2586%25E7%25BC%259'+ '6%25E7%25A0%2581'; var decodeURI = decodeURI(decodeURI(encode)); alert(decodeURI); return; } var output = ""; var chr1, chr2, chr3 = ""; var enc1, enc2, enc3, enc4 = ""; var i = 0; do { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; /* console.log("<======================================>"); console.log("chr1:"+chr1+ ";chr2:"+chr2+ ";chr3:"+chr3+ ";enc1:"+enc1+ ";enc2:"+enc2+ ";enc3:"+enc3+ ";enc4:"+enc4); */ if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } /* console.log(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4)); console.log("<======================================>"); */ output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4); chr1 = chr2 = chr3 = ""; enc1 = enc2 = enc3 = enc4 = ""; } while (i < input.length); return output; }