利用 encodeURIComponent/decodeURIComponent 和escape/unescape
# 将 utf8 转为 base64
function utf8_to_b64( str ) {
return window.btoa(unescape(encodeURIComponent( str )));
}
# 将 base64 转为 utf8
function b64_to_utf8( str ) {
return decodeURIComponent(escape(window.atob( str )));
}
# 使用
utf8_to_b64('? à la mode'); // "4pyTIMOgIGxhIG1vZGU="
b64_to_utf8('4pyTIMOgIGxhIG1vZGU='); // "? à la mode"