// Encode
const toBase64 = (input: string) => btoa(unescape(encodeURIComponent(input)))

// Decode
const fromBase64 = (input: string) => decodeURIComponent(escape(atob(input)))

Why include unescape()