Base64 to Text

Paste Base64, get text: UTF-8 safe decoding with exact error positions, protection against silently corrupting binary payloads, and strict canonical validation. All in your browser.

Decoding without destroying

The dangerous moment in Base64 decoding is when the bytes are not text. Most converters force them through a text decoder anyway, scatter replacement characters through the result, and let you copy the ruined version onward. Here the decoded bytes stay canonical: the text pane labels a lossy preview as lossy, re-encoding the unchanged preview uses the original bytes, and the Hex and File tabs give you binary-safe views and downloads. Paste first, decide what it is after, without losing anything in between.

Base64 to text FAQ

Why does my Base64 decode to garbled characters?

Because the bytes are not UTF-8 text. Base64 wraps arbitrary bytes: compressed data, images, ciphertext, or text in a legacy encoding. When decoding produces invalid UTF-8, this tool shows a clearly labeled lossy preview and keeps the original bytes intact, so you can inspect them on the Hex tab or download them from the File tab instead of losing data to replacement characters.

Why will some Base64 strings not decode at all?

Three fatal problems cover almost every case, and each gets a specific error here: a character outside the Base64 alphabets (often a stray space in the middle, a smart quote, or an accidentally included header), misplaced = padding (= is only legal at the very end), and an impossible length (Base64 length modulo 4 can never be 1). The error message names the exact character position, so you can fix the paste instead of guessing.

Can I decode a JWT with this tool?

You can decode its pieces. A JWT is three Base64URL segments separated by dots: paste the header or payload segment (without the dots) and it decodes to JSON, since the URL-safe alphabet and missing padding are handled automatically. What this tool deliberately does not do is verify the signature: decoding a JWT proves nothing about its authenticity, and no client-side decoder can change that.

Is my data uploaded when I decode it?

No. Decoding runs as JavaScript in your browser tab: nothing is sent, stored or logged, and the page works offline once loaded. That matters for Base64 specifically, because the payloads people decode are often the sensitive ones: tokens, API responses, email attachments and configuration blobs.

What does the alphabet and canonical status line mean?

Under the Base64 pane the tool reports which alphabet the input uses (standard + /, URL-safe - _, or a suspicious mix), whether it is padded, and whether it is canonical per RFC 4648, meaning a conforming encoder could actually have produced it. Non-canonical input still decodes, but the flag tells you the string was hand-edited, truncated or generated by a sloppy encoder, and one click normalizes it.