How to Decode Base64 Back to Text
Decode Base64 to text online for free, with correct Unicode handling and a clear error for invalid input instead of garbled output.
By QR Ivify Team
A Base64 string in an API response, a config value, a data URL — decoding it back to readable text is usually a one-click operation, except when the source contains non-English text, or the string itself is malformed. Here's what a decoder actually needs to handle correctly.
Two Ways This Commonly Goes Wrong
Invalid input. Not every string that looks like Base64 actually is — wrong characters, broken padding, or a string that's just plain text mistaken for encoded data. The browser's native atob() throws on genuinely invalid input, which QR Ivify's Base64 Decoder catches and reports as a clear "Invalid Base64 string," rather than letting the error crash the page or produce silently wrong output.
Unicode corruption. The reverse of the encoding problem: decoding Base64 back to a raw string with atob() alone works fine for plain ASCII, but Vietnamese, CJK, or emoji text needs the decoded bytes interpreted as UTF-8 (via TextDecoder) to come back correctly — skip that step and non-English text decodes into garbled, unreadable characters even though the Base64 itself was perfectly valid.
Step by Step
- Open the Base64 Decoder.
- Paste a Base64 string into the box.
- Click "Decode."
- Copy or download the decoded text.
What "Invalid Base64" Actually Means
Base64 uses a specific, small character set (A–Z, a–z, 0–9, +, /, with = for padding). A string containing anything outside that set — or with padding in the wrong place — isn't valid Base64, and there's no reasonable way to guess what was meant. Rather than attempting a "best effort" decode that could produce misleading output, an invalid string gets a direct error instead.
Frequently Asked Questions
What happens if I paste invalid Base64? You'll see "Invalid Base64 string" rather than garbled or silently wrong output.
Does this handle Vietnamese, emoji, and other Unicode text correctly? Yes — decoding goes through proper UTF-8 byte conversion, so Unicode text decodes back exactly as it was encoded.
Does this upload my text anywhere? No. Decoding happens entirely in your browser.
Is Base64 encryption? Is my decoded text safe from others? No — Base64 isn't encryption, and anyone with the encoded string can decode it just as easily. It provides no confidentiality.
Try It
Need to decode a Base64 string back to readable text? QR Ivify's free Base64 Decoder handles Unicode correctly and reports invalid input clearly. Need to encode text instead? Try Base64 Encoder. Decoding a token? See JWT Decoder.
Related articles
How to Base64 Encode Text (Without Breaking Unicode)
Encode text to Base64 online for free, with correct handling of Vietnamese, emoji, and other Unicode text — a common failure point in naive implementations.
How to Compare Two JSON Objects (Structurally, Not as Text)
Compare two JSON values online for free and see exactly what changed — key order and formatting differences are correctly ignored, unlike a plain text diff.
How to Convert a JSON Array to CSV
Turn a JSON array of objects into a CSV table — with nested objects flattened into columns and commas/quotes handled correctly, not just a naive join.