<script type="text/javascript">
function b64EncodeUnicode(str) {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
return String.fromCharCode('0x' + p1);
}));
}
console.log(b64EncodeUnicode('我是很厉害的')); // "5oiR5piv5b6I5Y6J5a6z55qE"
function b64DecodeUnicode(str) {
return decodeURIComponent(atob(str).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
}
console.log(b64DecodeUnicode('MjA5OTEwNTM5')); // "我是很厉害的"
</script>