Base64 Decode
Decode Base64 back into readable text, with full Unicode support.
What the decoder forgives
Base64 copied from emails, logs and config files rarely arrives clean. The decoder handles the usual mess:
- Line breaks and spaces are removed first, so Base64 wrapped across several lines, as in email sources, decodes as one string.
- Missing padding is fine.
SGVsbG8decodes to Hello just asSGVsbG8=does. - Leading and trailing whitespace is ignored.
Inputs that give "Invalid Base64 input"
Any of these makes the whole input fail:
- URL-safe characters.
-and_aren't in the standard alphabet. Change-to+and_to/, soPj4-Pz8_becomesPj4+Pz8/, which decodes to >>>???. For a whole JSON Web Token, the JWT Decoder does this conversion for you. - A data URI prefix. Remove the
data:text/plain;base64,part at the start, so only the characters after the comma remain. - Two values pasted together. Padding in the middle, as in
SGk=SGk=, is rejected. Decode each value on its own. - A truncated string. If the length leaves a single character over after dividing into groups of four, as with
T, part of the data is missing.
Why the output shows � characters
The decoded bytes are read as UTF-8 text. When they aren't valid UTF-8, each bad sequence is shown as the replacement character � instead of an error. Two situations cause this:
- The data was never text. Images, PDFs, compressed or encrypted data decode to a jumble of symbols and �. The Base64 is probably fine, but this page only shows text.
- The text used another encoding.
6Q==is é in Latin-1, a single byte, and shows as �. The UTF-8 form of é isw6k=, which decodes correctly. If an older system produced the Base64, this is the likely cause.
Checking what you decoded
Decoding shows the content exactly, including its formatting. A decoded JSON payload keeps whatever spacing it had, which is often none. Paste it into the JSON Formatter to read it.
If the result is itself a string of letters, digits, + and /, it may have been encoded twice. Decode it a second time.
Frequently asked questions
How can I tell whether a string is Base64?+
Look at the characters and the length. Standard Base64 uses only A to Z, a to z, 0 to 9, + and /, often ends in one or two = signs, and its length is usually a multiple of four. If the decoder accepts it and the output is readable, you have your answer.
Can I decode a Base64 image here?+
The decoder only shows text, so an image comes out as unreadable symbols. To view the picture, use the full data URI as the source of an image in an HTML page.
Is my input uploaded when I decode it?+
No. Decoding happens in your browser, so tokens and credentials you paste stay on your device.
Embed this tool on your website
Free to use on blogs, school sites and intranets. Paste this code into your page's HTML; please keep the credit line.
<iframe src="https://utilityapp.lat/embed/convert/base64-decode" title="Base64 Decode" width="100%" height="600" style="border:0;max-width:760px" loading="lazy"></iframe> <p style="font-size:13px"><a href="https://utilityapp.lat/convert/base64-decode">Base64 Decode</a> by UtilityApp</p>