Base64 Encoder / Decoder
Encode text to Base64 or decode Base64 back to text, with full Unicode (UTF-8) support.
Convert text to Base64 and back. This tool handles full Unicode correctly, so emoji and non-Latin scripts survive the round trip — something the raw browser functions get wrong on their own.
Base64 turns arbitrary data into a safe set of characters that can travel through systems built for plain text, like URLs, email headers, and JSON fields.
How to use it
- Choose Encode (text → Base64) or Decode (Base64 → text).
- Type or paste your input.
- The result updates live; copy it with one click.
What Base64 is for
Base64 represents binary or text data using 64 printable characters (A–Z, a–z, 0–9, plus + and /). It's used to embed images directly in HTML or CSS as data URIs, to attach files in email, to store binary blobs in text-only databases, and to pass small payloads inside URLs. It is encoding, not encryption — anyone can decode it, so never use it to hide secrets.
Unicode and UTF-8
Base64 works on bytes, and characters outside basic ASCII need to be converted to UTF-8 bytes first. This tool does that conversion for you, so accented letters, Cyrillic, CJK characters, and emoji all encode and decode without corruption. The naive browser btoa() call skips this step and throws on such input.
Common places Base64 shows up
You'll meet Base64 whenever binary data has to travel through a text-only channel. Data URIs embed small images directly in HTML and CSS. Email attachments are Base64-encoded under the hood. JSON Web Tokens use a URL-safe Base64 variant for their segments. Basic authentication headers encode the username and password (which is exactly why that scheme needs HTTPS — the encoding hides nothing). Recognising Base64 in the wild — long strings of letters, digits, and the odd + / = — often tells you what kind of data you're looking at.
Where Base64 shows up
Base64 exists because some channels only move plain text safely. Email attachments, JSON payloads, and data URIs can't carry raw binary, so the bytes are re-expressed using 64 printable characters. That's why you'll see it embedding a small icon directly in a CSS file as a data: URI, encoding an image inside an API response, or wrapping credentials in an HTTP header. The trade-off is size: Base64 output is about 33% larger than the original, so it's ideal for small assets and short strings but not a replacement for proper file uploads on large data.
Frequently asked questions
Is Base64 a form of encryption?
No. It's a reversible encoding that anyone can decode. It makes data safe to transport as text, but provides no security. Use real encryption for secrets.
Does it support emoji and non-English text?
Yes. Input is converted to UTF-8 before encoding, so emoji and any language decode back exactly.
Why does Base64 make data bigger?
It represents every 3 bytes as 4 characters, so encoded output is about 33% larger than the original. That's the trade-off for text safety.
What are the '=' signs at the end of Base64?
They're padding. Base64 works in groups of four characters, and '=' fills out the final group when the input length isn't a multiple of three bytes. The decoder handles them automatically.
Is there a URL-safe version of Base64?
Yes. It replaces + and / with - and _ so the string can sit in a URL without further escaping. Standard Base64, which this tool produces, uses + and /.
Last updated: 2026-01-15