Base64 encode & decode. Every byte stays on your device.
Encode text or files to Base64 and back — UTF-8 safe, with a URL-safe option, live encoding as you type, and ready-to-use data: URIs. Runs entirely in your browser; nothing is uploaded.
A free online tool by Digital HeroesEncoding is UTF-8 safe, emoji and accented characters round-trip correctly.
File → Base64
or click to browse (any type)
🔒 Files never leave your browser. Nothing is uploaded.
Base64 → File
Base64, without leaving the page
Type in the plain-text pane and the Base64 pane fills in as you type — UTF-8 handled correctly, so emoji and accented characters round-trip intact. Paste Base64 the other way and decode it back; the decoder tolerates URL-safe characters, data: URI prefixes, wrapped lines and missing padding automatically. Switch to the File tab to drop any file up to 25 MB and get its Base64 plus a ready-to-paste data: URI, or paste Base64 and download the original file it encodes. Everything happens locally on your device — no upload, no sign-up, and it keeps working offline.
Every Base64 job, one page.
- Encode any text to Base64 in real time, with full UTF-8 support for emoji, accented letters and non-Latin scripts.
- Decode Base64 back to plain text, automatically handling URL-safe characters, data: URI prefixes and missing padding — with a hex preview instead of mojibake when the bytes are binary.
- Convert any file to Base64 by dropping it on the File tab, with an instant preview for image files.
- Generate a data: URI from any file, ready to paste into HTML, CSS or Markdown with no extra HTTP request.
- Download a decoded file by pasting Base64 or a full data: URI and clicking Decode & download — the filename extension is even suggested from the MIME type.
- Switch to URL-safe mode for JWTs, OAuth tokens and signed URLs, or wrap output at 76 characters for MIME and PEM blocks.
Four steps, no manual.
- Type or paste into the plain-text pane — the Base64 pane encodes live as you type. Or paste Base64 on the right and click ← Decode.
- Toggle URL-safe for JWT/OAuth-style output, Wrap at 76 for MIME/PEM blocks, or data: URI prefix for an inline-ready string.
- For files, switch to the File tab and drop anything up to 25 MB — copy the Base64 or the ready-made data: URI.
- To go the other way, paste Base64 or a data: URI into Base64 → File, set a filename and click Decode & download.
Frequently asked questions.
Is the data I paste sent anywhere?
What's the difference between standard and URL-safe Base64?
Why is my decoded UTF-8 garbled?
How do I encode a binary file?
What's the "Wrap at 76" option for?
Why does Base64 of a 100-byte string take 136 characters?
Published · Last updated .