Base64 to Text
Converter
Decode any Base64 string to plain text instantly. Supports UTF-8, UTF-16, Latin-1, and ASCII. Two-way conversion, live character stats, URL-safe mode, and multi-line batch decoding all privately in your browser.
Decode Base64 to Text in Three Steps
No sign-up, no server contact. Paste, decode, and copy in seconds.
Paste Base64 String
Copy your Base64 string and paste it into the input. The decoder accepts standard Base64 with or without = padding, and automatically strips surrounding whitespace.
Select Character Encoding
Choose the correct character encoding UTF-8 is right for most modern text including emoji and international characters. Use Latin-1 or Windows-1252 for legacy Western European content.
Copy or Download
Copy the decoded text to your clipboard, download it as a .txt file, or switch tabs to re-encode it back to Base64 with a different encoding or line-wrap format.
A Complete Base64 Text Toolkit
Decode, encode, URL-safe mode, batch processing, and live stats all in one private tool.
Multi-Encoding Support
Decode using UTF-8, UTF-16 (LE and BE), Latin-1 / ISO-8859-1, Windows-1252, or 7-bit ASCII. Covers Unicode, emoji, Japanese, Arabic, Cyrillic, and legacy Western European text.
Live Character Stats
As you decode, see the character count, word count, line count, UTF-8 byte size, unique character count, and Base64 input length update instantly below the output.
URL-Safe Base64
Dedicated tab for URL-safe Base64 (JWT, OAuth, URL query strings) auto-converts -→+ and _→/, restores missing = padding, and shows the standard equivalent.
Batch Decode
Paste a list of Base64 strings one per line and decode them all at once. Each result is displayed in a numbered row so you can quickly scan and copy individual values.
Two-Way Conversion
Encode plain text to Base64 with configurable line wrap (none, 64, 76 MIME, or 80 chars). Swap input and output between tabs with one click to round-trip any value.
100% Private
All encoding and decoding uses native browser APIs TextDecoder, atob(), btoa(). Nothing is transmitted. Works fully offline after page load.
Supported Encoding Reference
Choose the right encoding to correctly interpret non-ASCII characters in decoded Base64 strings.
| Encoding | Coverage | Unicode? | Best For | Use When |
|---|---|---|---|---|
| UTF-8 | All Unicode (1.1M+ chars) | Full | Everything modern | Default use unless you know otherwise |
| UTF-16 LE | All Unicode | Full | Windows APIs, .NET strings | Data from Windows / .NET systems |
| UTF-16 BE | All Unicode | Full | Network byte order, Java strings | Java serialised strings, network protocols |
| Latin-1 / ISO-8859-1 | Western European (256 chars) | No | Legacy European text | Old HTTP headers, legacy email, ISO-8859-1 forms |
| Windows-1252 | Western European + extras | No | Legacy Windows documents | Data from old Windows applications or Office docs |
| ASCII (7-bit) | Basic Latin (128 chars) | No | Pure English text, protocols | HTTP header values, email headers, protocol tokens |
When You Need Base64 to Text
Base64-encoded text appears everywhere across the web stack from tokens to email headers.
JWT Token Inspection
JSON Web Tokens are three URL-safe Base64 segments separated by dots. Decode the header and payload segments to inspect claims, expiry timestamps, and algorithm settings without a dedicated JWT debugger.
Email Header & Body Decoding
SMTP email headers and MIME parts are routinely Base64-encoded, particularly for non-ASCII subject lines and encoded-word syntax (=?utf-8?B?…?=). Decode them here to read the original text.
API Response Debugging
REST APIs and webhooks sometimes return Base64-encoded strings for text fields error messages, descriptions, or content blocks. Quickly decode to read the actual value without writing a script.
OAuth & SAML Token Payloads
OAuth 2.0 access tokens and SAML assertions are Base64-encoded. Decode them during development and debugging to verify that claims, scopes, and attributes are set correctly.
Configuration & Secret Decoding
Kubernetes Secrets, Docker environment files, and CI/CD variable stores often encode configuration values as Base64. Decode them here to inspect or copy the raw values safely.
Log & Event Stream Analysis
Application logs and event streams sometimes include Base64-encoded fields for structured data. Use the batch decoder to paste a column of values and decode them all at once in seconds.
Base64 to Text Decoding Explained
Base64 encodes binary data as ASCII characters. To get text back, the process has two stages: first, decode the Base64 string back to raw bytes using atob(); second, interpret those bytes as a character string using the correct text encoding.
This second stage is critical. The same byte sequence means completely different characters in UTF-8 versus Latin-1. A multi-byte UTF-8 character like é (U+00E9) is encoded as two bytes 0xC3 0xA9. In Latin-1, those same two bytes decode to two separate characters. Using the wrong encoding produces garbled output called "mojibake".
The browser's native TextDecoder API handles all supported encodings. URL-safe Base64 substitutes - for + and _ for / and omits padding the tool reverses this before decoding.
Frequently Asked Questions
Everything you need to know about decoding Base64 to text.
+ and / as the 62nd and 63rd characters, with = padding. These characters have special meaning in URLs so URL-safe Base64 (RFC 4648 §5) replaces them: + becomes -, / becomes _, and padding is often omitted. JWT tokens, OAuth codes, and URL query parameters almost always use URL-safe Base64.SGVsbG8= (8 characters). For multi-byte UTF-8 text the overhead is higher because the UTF-8 byte count is greater than the character count.= padding characters are used to make the Base64 output length a multiple of 4. Many systems omit padding for compactness particularly URL-safe Base64 implementations. This tool accepts unpadded input and handles the missing padding automatically before decoding.header.payload.signature. The header and payload are URL-safe Base64 (no padding). Use the URL-Safe Decode tab paste just the header or payload segment (without the dots) to decode and read the JSON. Note: do not paste the full token with dots, just one segment at a time. For signature verification you need the secret key this tool only decodes the payload.atob(), btoa(), and TextDecoder. Nothing is transmitted anywhere. The tool works fully offline after the page loads, making it safe for secrets, tokens, personal data, and any other sensitive content.\n, a tab becomes \t, and a Japanese character becomes \u65E5. This is useful for copying decoded output into source code strings or for identifying hidden control characters.