Why most browser-based Base64 tools mangle your text
The browser's built-in btoa does not accept text. It accepts a string of bytes, meaning every code unit must be 255 or below, so btoa applied to a word with an accent throws an error and applied to certain other input produces the wrong answer. The workaround that circulated for years relied on unescape, a function deprecated since the 1990s. Tools built on either are broken for most of the world's writing systems, and the failure is usually silent mojibake rather than an error.
This tool encodes through TextEncoder into real bytes and then applies the alphabet directly, so Hindi, Chinese, emoji, the rupee sign and accented Latin all round-trip exactly. Decoding runs the same path in reverse and reports failure rather than substituting replacement characters, which means it can tell you honestly when the input was binary rather than text.