Base64 to Text Converter – Free, Online, Private
Decode Base64 into a UTF-8 string. Invalid UTF-8 is reported instead of being replaced with question marks.
How to convert Base64 to Text
- Paste Base64. URL-safe characters and missing padding are normalized.
- The bytes are decoded as UTF-8.
- Copy the text. If the error says the bytes are not text, the payload is probably a file.
Strict UTF-8
After the alphabet is decoded to bytes, a fatal UTF-8 decoder reads them. A PNG or a JPEG fails that check, which is what you want: those bytes are not text, and showing a mojibake string would look like a successful decode. Use Base64 to image for pictures. Valid text, including multibyte characters, comes back as the original string. The sample SGVsbG8sIFV0aWxvIQ== is Hello, Utilo! with the comma and the space. Overlong encodings and bare continuation bytes are errors. The page does not use the replacement character.
Alphabet cleanup
Whitespace is removed, so a MIME body wrapped at 76 columns still decodes. - and _ are treated as + and / so a URL-safe payload works. Padding is added if the length is not a multiple of four. Characters outside the alphabet, such as a quote you copied from JSON, cause the decoder to fail. Strip the quotes. A data URL prefix is removed up to the comma, so you can paste data:text/plain;base64,SGVsbG8= and still get the text. If both a text and an image interpretation are plausible, look at the first bytes: iVBORw0KGgo is a PNG and belongs on the image page.
Worked example
The sample decodes to Hello, Utilo!. Round-tripping through text to Base64 returns the same alphabet, including padding. Decode SGVsbG8= and you get Hello without the comma. A string that was encoded from UTF-16 code units in an old browser, using btoa on a string with accents, will not match this decoder, because this page expects UTF-8. Re-encode the original text here if you control it. If you only have the old Base64, the bytes are still the UTF-16 code units and this page will reject them when they are not valid UTF-8.
Secrets in the box
Basic-auth headers and token fields are often Base64. Decoding them locally keeps the password off a third-party decoder. The result is still on screen. Do not decode a production password on a shared machine, and remember that decoding is not verification. A JWT is three Base64url segments; the JWT decoder on Utilo is the tool that splits them and shows claims. This page decodes one blob.
Frequently asked questions
Why did a PNG fail?
Image bytes are not UTF-8 text. Use the Base64 to image page to preview them.
Is URL-safe Base64 accepted?
Yes. - and _ are mapped to + and /, and padding is added if it was stripped.
Are wrapped lines allowed?
Yes. Whitespace is removed before decoding.
Is the string uploaded?
No. Decoding stays in the browser.