Base64 to Text Decoder – Free Online Tool
Decode Base64 strings back to plain text instantly in your browser. Paste your Base64 and get readable text output. Also encodes text to Base64.
Input
Output
What Is Base64 to Text?
Base64 is an encoding scheme that turns binary data into printable ASCII characters — you've probably seen it in email attachments, HTTP Authorization headers, or MIME messages. This tool does the reverse: paste a Base64-encoded string and you get the original plain text back immediately. It also works the other way — type or paste any text and get a Base64 string you can use in browser scripts, data URIs, or API payloads.
The decoder handles UTF-8 properly — so emojis, Chinese characters, and accented letters all decode correctly. Everything runs in your browser using JavaScript; your text never leaves your machine.
How to Use This Tool
Choose Mode
Select Decode to convert a Base64 string back to plain text, or Encode to convert plain text to a Base64 string.
Paste Input
Paste your Base64 string or plain text into the left editor. Use Sample to load an example, or Upload to load from a file.
Copy or Download Result
The right panel updates automatically as you type. Use Copy to grab the result, or Download to save it as a .txt file.
Example
Decoding a Base64 string that encodes the classic "Hello, World!" message:
Base64 Input
Text Output
Frequently Asked Questions
How does Base64 decoding work?
Base64 represents binary data using 64 printable characters (A–Z, a–z, 0–9, +, /). Each Base64 character stores 6 bits, so every 4 Base64 characters decode to 3 bytes of original data. The browser's built-in atob() function handles this conversion. This tool wraps it with UTF-8 handling so non-Latin characters decode correctly too.
Why does my Base64 string end with "=" or "=="?
The = characters are padding. Because Base64 encodes 3 bytes into 4 characters, if the input length isn't a multiple of 3, padding is added to make the output length a multiple of 4. One = means 1 byte of padding was added; == means 2 bytes. The decoder handles both automatically. See the RFC 4648 spec for the full details.
Does this handle UTF-8 characters like emojis or Chinese text?
Yes. The raw atob() function only handles Latin-1, but this tool wraps it with decodeURIComponent(escape(atob(...))) to properly reconstruct UTF-8 text. So Base64-encoded strings containing emoji, Arabic, Japanese, or any Unicode text will decode correctly.
What is the difference between Base64 and Base64url?
Standard Base64 uses + and / as the last two characters, which are not URL-safe. Base64url (defined in RFC 4648 §5) replaces them with - and _. If you have a Base64url string, replace - → + and _ → / before decoding, or use our dedicated Base64 URL Decoder.
Is my text kept private when I use this tool?
Absolutely. All encoding and decoding is done entirely in your browser using JavaScript. No data is sent to any server. You can verify this by opening your browser's Network tab — you'll see zero requests made while the tool runs.
Can I encode multi-line text or large strings?
Yes, there is no length limit imposed by this tool. The editor accepts any text you paste or type, including multi-line content. Keep in mind that very large inputs may take a moment depending on your browser's JavaScript performance.
Related Tools
The Base64 encoding scheme is defined in RFC 4648. See also MDN: Base64 and Wikipedia: Base64.