Base64 encoder/decoder

Did you know that the global btoa and atob methods in browsers only support extended ASCII characters? For example, btoa('foo ♥ bar') throws an error. A proper Base64 encoder encodes strings as UTF-8 first, and then encodes the resulting byte sequence as Base64. When decoding, Base64 decoding is performed first, followed by UTF-8 decoding.

Unicode ()