Base64 Encoder / Decoder
Encode text to Base64 or decode Base64 to text with UTF-8 support.
Recommended tools
Free CDN, DNS, and edge hosting for developers.
Affordable domains and SSL certificates.
Affiliate links — we may earn a commission if you sign up.
About the Base64 Encoder / Decoder
The Base64 Encoder / Decoder converts plain text to Base64 and back with full UTF-8 support, which matters more than it sounds: JavaScript's built-in atob and btoa choke on emoji, accented letters, and most non-Latin scripts, while this tool encodes multi-byte characters correctly and decodes them without corruption. The Encode tab takes any text and produces standard Base64; the Decode tab reverses it and validates both the character alphabet and the padding, reporting errors like Invalid Base64 — length is not a multiple of 4 instead of guessing. A URL-safe variant switch swaps + and / for - and _, strips trailing padding on encode, and restores both on decode — the exact behavior you need when embedding tokens inside URLs or JWT-style payloads. A Use output as input button feeds the current result into the opposite tab, so you can instantly round-trip a value and confirm it survives encoding. Live stats show the mode plus input and output byte counts, and results download as encoded.b64 or decoded.txt. For decoding a base64 string from an email header, or encoding credentials for a test request, this is the fastest path.
Examples
Hello, Fernandes Labs! 🚀
SGVsbG8sIEZlcm5hbmRlcyBMYWJzISDwn5qA
SGVsbG8sIEZlcm5hbmRlcyBMYWJzISDwn4yN
Hello, Fernandes Labs! 🌍
user:pass?ref=100 (URL-safe variant on)
dXNlcjpwYXNzP3JlZj0xMDA
How to use
- 1
Choose the Encode or Decode tab for the direction you need.
- 2
Type or paste your text (or Base64 string) into the input textarea.
- 3
Flip the URL-safe variant switch if the value must survive inside a URL or token.
- 4
Press Use output as input to feed the current result into the opposite tab for a round-trip check.
- 5
Copy the result or download it as encoded.b64 / decoded.txt from the result box.
Common use cases
- Encoding credentials for an Authorization header in a quick API test.
- Decoding a base64 string pasted from an email attachment or a JWT payload section.
- Preparing URL-safe tokens for password-reset links that pass through email clients.
- Embedding small encoded data as a data URI in HTML.
- Decoding base64 log fragments from a mobile crash report.
- Verifying that a round trip through your own encoder preserves UTF-8 characters exactly.
Best practices
- Never treat Base64 as encryption — it is reversible encoding and offers zero confidentiality.
- Decode JWT payload segments with URL-safe mode on, since segments almost always omit = padding.
- Use the URL-safe variant whenever the string will travel through URLs, query strings, or path segments.
- Remember that standard Base64 output is not whitespace-tolerant everywhere; the decoder here strips whitespace, but strict endpoints may not.
- Test emoji and accented text when validating an encoder pipeline — ASCII-only tests hide UTF-8 bugs.
- Read the decoder's specific errors (bad alphabet character, wrong length) instead of guessing why output is empty.
Tips
- Keep the URL-safe switch on while decoding JWT payloads — they almost always omit padding.
- Use Use output as input to prove your pipeline round-trips before trusting it in production code.
- The Output bytes stat is a fast sanity check: decoded ASCII text should roughly match its character count in bytes.
- If decoding produces garbled accents, the source was likely encoded from Latin-1, not UTF-8.
Frequently asked questions
Explore more developer tools
Browse the full collection of developer tools on the hub, or jump back to all categories.