Base64 Encoder/Decoder

Encode text to Base64 or decode Base64 strings back to plain text.

Paste text on the left to see its Base64 representation on the right, or paste a Base64 string to decode it back. UTF-8 is handled transparently, so emojis, non-Latin scripts and accented characters all round-trip without corruption.

Common use cases: embedding small images as data URIs, packing arbitrary bytes into a JSON or URL parameter, inspecting JWT payloads (each segment is base64url), or decoding webhook bodies that arrive Base64-wrapped.

Text

Base64 Encoded

Frequently asked questions

What is Base64 encoding actually for?
Base64 turns arbitrary bytes into a 64-character ASCII alphabet so binary data can travel through systems that only accept text — JSON fields, URLs, HTTP headers, email bodies, JWT payloads, data URIs. It is not encryption. Anyone with the encoded string can recover the original bytes.
Why does my encoded string end with one or two equals signs?
Base64 encodes input in 3-byte groups, producing 4 characters per group. When the final group is short, = pads it out so the length is always a multiple of 4. One padding character means the input ended on a 2-byte boundary, two means it ended on a 1-byte boundary.
Will decoding non-ASCII text give me my original characters back?
Yes — the tool encodes and decodes as UTF-8, so emojis, accented characters and CJK text round-trip cleanly. If you decode a string produced by a tool that used a different charset (e.g. Latin-1), you may see mojibake.
Is base64url different from regular Base64?
Yes. base64url replaces + with - and / with _, and usually strips the trailing = padding. It is the variant used in JWTs and other URL-safe contexts.
Does any data leave my browser?
No. Encoding and decoding both run client-side via the browser's built-in btoa/atob with UTF-8 handling. Nothing is uploaded.