Base64 API
1. Usage Example
testBase64('Hello, world', btoa, atob);
testBase64('Hello, world', b64EncodeUnicode, b64DecodeUnicode);
testBase64('C# Base64編碼處理', b64EncodeUnicode, b64DecodeUnicode);
testBase64('✓ à la mode', b64EncodeUnicode, b64DecodeUnicode);
function testBase64(origStr, encodeFunc, decodeFunc){
var base64Str = encodeFunc(origStr);
var decodedStr = decodeFunc(base64Str);
console.log(`origStr =[${origStr}]`);
console.log(`decodedStr =[${decodedStr}]`);
console.log(`base64Str =[${base64Str}]`);
}
function b64EncodeUnicode(str) {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
function toSolidBytes(match, p1) {
return String.fromCharCode('0x' + p1);
}));
}
function b64DecodeUnicode(str) {
return decodeURIComponent(atob(str).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
}