Base64 Decoder
Decode Base64 strings back to readable text instantly in your browser. Text only — for images, use a dedicated Base64-to-image tool.
Unicode Safe
Correctly decodes multi-byte characters and emoji, not just ASCII.
Clear Error Messages
Distinguishes invalid Base64 syntax from bytes that just aren’t valid UTF-8.
Handles Large Text
Decodes strings up to 50MB without freezing the page.
How to Decode a Base64 String
- Paste the Base64 text — from an auth header, an email payload, a config value, a JWT segment you extracted.
- Click Decode.
- The original text appears in the output pane, decoded as UTF-8.
- If decoding fails, the error message tells you whether the Base64 itself was malformed or the decoded bytes weren’t valid text.
Example: Decoding Back to the Original Text
Input — Base64
Q2Fmw6kg4piVIG1lZXRzIOadseS6rA==
Output — decoded text
Café ☕ meets 東京
Accents, emoji, and CJK characters decode correctly because the bytes are interpreted as UTF-8 — the encoding virtually all modern systems produce.
The two ways decoding fails
A Base64 string can be broken in two distinct ways, and this tool reports them differently. Characters outside the Base64 alphabet or impossible padding mean the string isn’t Base64 at all — often a truncated copy-paste. Valid Base64 whose bytes don’t form real UTF-8 text usually means the payload was binary (an image, a hash, compressed data), which no text decoder can meaningfully display.
Spotting Base64 in the wild
Base64 shows up anywhere binary data travels through text: the credentials in a Basic auth header, attachment bodies in raw email, certificate PEM blocks, and the header and payload segments of every JWT. If a suspicious string uses only letters, digits, + and /, and ends in one or two = signs, decoding it here is the fastest way to find out what it says.
Frequently Asked Questions
Those are two separate failure points. First the tool checks whether your input is even valid Base64 syntax (right alphabet, correct padding) — that's the "Invalid Base64" error. If it passes that check, the resulting bytes still have to form valid UTF-8 text to be displayed; if you paste the Base64 of an image, a compressed file, or otherwise non-text binary data, decoding succeeds but the bytes aren't valid UTF-8, so you get this second, different error instead of garbled output.
No — decoded bytes are always interpreted as UTF-8 text here, by design. If you paste an image's Base64 data, you'll get the "not valid UTF-8" error above rather than an image preview, since this tool is scoped to text only.
No — ordinary spaces, tabs, and line breaks are ignored automatically before decoding (this is part of the Base64 spec's "forgiving" decode behavior). It's only characters outside the Base64 alphabet — anything other than A-Z, a-z, 0-9, +, /, and = padding — that will trigger an error.
No. Decoding happens entirely in your browser — nothing you paste here is ever transmitted anywhere, which matters if the encoded content is a credential or other sensitive value.
Base64URL is a small variant that swaps two characters — "+" becomes "-" and "/" becomes "_" — and usually drops the "=" padding, specifically so the result is safe to use inside a URL or filename without further escaping (standard Base64's "+" and "/" are not URL-safe). This page decodes standard Base64; if you're working with a JWT specifically, use the JWT Decoder instead, which already handles the URL-safe variant.
Related Tools
Base64 Encode
Encode plain text to Base64 instantly in your browser.
JSON Formatter
Make messy, minified JSON readable with customizable indentation.
JSON Validator
Check JSON validity with precise line/column errors.
URL Encoder
Safely percent-encode text for use in URLs and query strings.
JSON to YAML
Convert JSON documents to clean, indented YAML.
JSON to XML
Convert JSON into well-formed XML markup.