Last updated October 26, 2026
Base64 Encoder & Decoder
Encode or decode Base64
Base64 turns bytes into 64 printable characters so they can travel through systems that only accept text. Paste text to encode it, or paste Base64 to decode it. Both directions run in this tab.
What Base64 actually does
Base64 takes every three bytes of input and writes them as four characters from a fixed 64-symbol alphabet. That is why the output is roughly a third larger than the input: three bytes become four characters. It is an encoding, not encryption — anyone can decode it, so never use it to hide a password or a secret.
Why UTF-8 matters here
Many online converters work on JavaScript characters rather than bytes, which corrupts accented letters and emoji. This one converts your text to UTF-8 bytes first, encodes those bytes, and reverses the same steps when decoding. A word like café is two bytes for the é, and the decoded result comes back as the same characters you typed.
Where Base64 shows up
It appears in email attachments (MIME), in data: URLs for small images, in JSON web tokens, in basic authentication headers, and in configuration files that must stay plain text. In each case the requirement is the same: a transport that cannot carry raw bytes, and a reader that knows to decode.
When decoding fails
Valid Base64 uses only A–Z, a–z, 0–9, plus, slash and up to two trailing equals signs. Copying a token out of a chat app often adds a stray character or converts a plus into a space, which is enough to break decoding. The decoder ignores line breaks and spaces, but it will not guess at other characters — it reports an error instead of returning mangled text.
Related converters
For table-shaped data use the JSON to CSV and CSV to JSON converters, which also run locally and keep quoted values intact.
Frequently asked questions
Is Base64 encryption?
No. Base64 is a reversible encoding with a published alphabet and no key, so decoding needs nothing but the string itself. If you need confidentiality, use encryption — Base64 only makes bytes safe to pass through text-only channels.
Why is the encoded output longer than my text?
Every three bytes become four characters, so the payload grows by about 33%, plus padding. Accented letters and emoji take more than one byte in UTF-8, which is why non-English text grows a little more than plain ASCII.
Does my text leave the browser?
No. The encoding and decoding are ordinary JavaScript in this tab, and the result is written back into the page. There is no upload step, and the page keeps working if you disconnect.
Can I decode Base64 without padding?
Yes. Missing trailing equals signs are added before decoding, so a token copied without them still converts. A single leftover character that cannot form a group is rejected rather than silently dropped.