What this tool does
The Base64 is decoded to bytes, and those bytes are read as UTF-8 text. Both steps can surprise you, so both are worth stating.
It accepts Base64 as it actually arrives
Real Base64 is rarely a single clean line:
- line breaks — MIME wraps at 76 columns by specification, the
base64command wraps by default, and a PEM block is wrapped too; - the URL-safe alphabet —
-and_in place of+and/; - missing padding — the URL-safe form drops
=deliberately, and many encoders omit it.
All three are accepted. Whitespace is removed, the alphabet is normalised, the padding is restored. What is genuinely not Base64 still fails, with an error rather than a guess.
Bytes, then text
Base64 carries bytes, not characters. Nothing in the encoding says those bytes are text at all — they might be a PNG, a private key, a compressed archive.
This tool reads them as UTF-8, because that is what you want in the common case. When the source was binary, you will see replacement characters instead. That is not a failure of the decoder: it is the honest result of asking for text from something that was never text.
Base64 is not encryption
Worth repeating from the other direction: if you can read a value here, so can anyone who intercepted it. Base64 has no key and no secret. A token found in a log is a token, whether or not it is encoded.
Private by design
Everything runs locally in your browser with JavaScript. Your data is never uploaded, which makes the tool safe for sensitive content, and it keeps working offline.