Base64 Encoder / Decoder
Base64 is a binary-to-text encoding scheme, defined in
RFC 4648,
that represents arbitrary byte data as a string built from 64 printable ASCII
characters (A–Z, a–z, 0–9, +, and /). This
tool encodes plain text into Base64, or decodes a Base64 string back to readable text,
entirely in your browser — nothing you type is ever sent to a server.
Unicode is handled correctly: your text is first converted to its UTF-8 byte
representation before encoding, so accented letters, CJK text, and emoji round-trip
exactly rather than throwing an error or getting mangled, which is what happens if you
reach directly for the browser's raw btoa() function on non-Latin1 text.
We checked this directly rather than assuming it: encoding and then decoding a string
mixing English, Chinese characters, an emoji, and an accented letter came back byte-for-
byte identical to the original.
Is Base64 a form of encryption?
No — this is the single most common misconception about Base64. It's an encoding, not encryption: anyone can decode it back to the original text with no key, password, or secret required, using this tool or a single line of code. Base64 doesn't hide or protect data at all; it only reshapes binary data into a text-safe format. Don't use it to protect anything sensitive.
Why does the output end with = signs?
Base64 encodes data three bytes at a time into four characters. When the input length
isn't a multiple of three, the last group is padded with one or two =
characters so the output always comes out in complete four-character blocks. It's a
normal, expected part of the format, not an error — some contexts (like URLs) strip
the padding since it can be recalculated from the string length.
What is Base64 actually used for?
It shows up anywhere binary data needs to travel through a text-only channel: embedding images directly in CSS or HTML as data URIs, attaching files to email (MIME), encoding the header and payload of a JWT, and passing binary data through APIs, cookies, or query strings that expect plain text. Going the other way — converting Base64 to text — is just as common: it's how you read back a JWT payload, inspect a data URI, or recover the original content of anything you (or someone else) encoded.
Is there a size limit on what I can encode or decode?
Not from this tool specifically — since everything happens in your browser instead of on a server, your device's own memory is the real ceiling, not a number we've imposed. Very large inputs may take a moment longer to process, but there's no artificial cap on length.
Related tools
Need a different encoding? Use the URL Encode & Decode tool to percent-encode text for safe use in a URL instead.
Last reviewed: August 2026