Free Base64 Encoder & Decoder
Encode any text to Base64 or decode Base64 back to readable text — with proper Unicode support that naive encoders get wrong.
How to use the Base64 encoder
- Paste text (to encode) or Base64 (to decode) into the input box.
- Click Encode to Base64 or Decode from Base64.
- Use Swap to flip input and output for chained conversions, then copy the result.
What is Base64?
Base64 is a way to represent arbitrary binary data as plain ASCII text, using 64 safe characters (A–Z, a–z, 0–9, +, /). It shows up everywhere: data URLs that embed images directly in HTML and CSS, API tokens and credentials, email attachments (MIME), and JWT tokens. Encoding inflates size by about 33%, which is the price of text-safety. Two things Base64 is not: encryption and compression. Anyone can decode it instantly, so never treat it as a way to hide secrets — and if you need smaller payloads, compress first, then encode. One more gotcha: the browser's built-in btoa() chokes on non-Latin characters like emoji or accented letters. This tool encodes proper UTF-8 first, so "héllo world" with accented characters round-trips correctly where naive encoders throw errors or produce mojibake.
Frequently asked questions
Is Base64 encryption?
No. It is an encoding, not encryption — anyone can decode it in seconds. Never use it to protect passwords or secrets.
Why does Base64 sometimes end with = signs?
Those are padding characters. Base64 works in 3-byte chunks; the = signs fill out the final chunk when the input length is not a multiple of three.
Does this handle emoji and accented characters?
Yes. Text is encoded as UTF-8 before conversion, so the full Unicode range — emoji, CJK characters, accents — encodes and decodes correctly.
Why is Base64 output longer than the input?
Every 3 bytes of input become 4 characters of output, so encoded text is roughly 33% larger. That overhead is the cost of staying plain-text safe.