Encode and decode Base64 online
Base64 shows up everywhere — API tokens, data URIs, email attachments. Switch between encode and decode mode, paste your text, and see the result instantly. This tool correctly handles Unicode text (emoji, non-Latin scripts), unlike naive btoa/atob usage, by encoding through UTF-8 bytes first. Everything runs in your browser; nothing you paste is sent anywhere.
What Base64 is for
Base64 represents binary data using only 64 safe text characters, which lets it travel through systems that expect text — email bodies, JSON fields, data URIs embedded in CSS, HTTP headers. It is an encoding, not encryption: anyone can decode it instantly, and it provides no security whatsoever. Base64 in a URL or a token is there to make binary data survive transport, not to hide it.
Unicode handled correctly
The browser's built-in btoa function fails outright on characters above the basic Latin range, which is why so many Base64 tools mangle emoji, Devanagari, and accented text. This tool encodes through UTF-8 bytes first, so any text round-trips exactly — encode 'नमस्ते 🎉' and decoding returns it unchanged rather than throwing an error or producing replacement characters.
The size cost
Base64 expands data by roughly a third, because it stores three bytes of input in four characters of output. That is worth knowing when embedding images as data URIs: a 100KB image becomes about 133KB of text in your HTML or CSS, and unlike a linked file it cannot be cached separately by the browser. Data URIs suit small icons; for anything substantial, a normal file reference is faster.
Frequently asked questions
- Does this handle non-English text and emoji?
- Yes, text is encoded as UTF-8 bytes before base64 encoding, so accented characters, non-Latin scripts, and emoji round-trip correctly.
- What happens if I paste invalid Base64 in decode mode?
- You'll see a clear error instead of garbled output or a crash.
- Is my text sent anywhere?
- No, encoding and decoding happen locally in your browser using JavaScript. Nothing is transmitted.
- Is Base64 a form of encryption?
- No, and treating it as one is a genuine security mistake. It is trivially reversible by anyone — it exists to make binary data survive text-only channels.
- Why did another tool break my emoji?
- Most use btoa directly, which cannot handle characters outside Latin-1. Encoding via UTF-8 bytes first, as this tool does, handles any text.