Base64 Encode/Decode
Encode text to base64 or decode base64 back to text
Encodes text to Base64 or decodes Base64 back to text, with an explicit Encode/Decode toggle and a copy button for the result.
How it works
Encoding runs your text through the browser's UTF-8 encoder first, so non-Latin text like emoji or Georgian encodes correctly rather than breaking on characters outside basic Latin. Decoding does the reverse and rejects output that isn't valid UTF-8 text, rather than showing corrupted mojibake as if it were a real result.
Frequently asked questions
Why is there a separate Encode/Decode toggle instead of auto-detecting?
Some text is technically valid Base64 on its own (short words made only of Base64-alphabet letters, for instance), so guessing the mode would sometimes guess wrong. An explicit toggle is more reliable than a guess.
Why did decoding fail on my input?
Either the text isn't valid Base64 (wrong characters or padding), or it decodes to bytes that aren't valid UTF-8 text — this tool is built for text, so it reports an error rather than showing unreadable garbled output.
Does it handle non-English text and emoji correctly?
Yes — text is UTF-8 encoded before Base64 conversion, so Georgian, emoji, and other non-Latin characters round-trip correctly rather than breaking, which a naive Base64 implementation can get wrong.
Is my text sent anywhere while I encode or decode it?
No — both directions run entirely in your browser using built-in JavaScript functions. Nothing is uploaded.
Can I decode Base64 that represents binary data, like an image?
No — this tool assumes the decoded result should be readable text and rejects anything that isn't valid UTF-8, so Base64 of binary data like images will show as invalid rather than as raw bytes.