Base64 Encoder / Decoder
UTF-8-safe Base64 encode and decode
Base64 is an encoding, not encryption, and the distinction is not pedantry: there is no key, so anyone who can see the string can read it in one step. What Base64 does is make binary data safe to carry through systems that only handle text. Text is first encoded as UTF-8 bytes, then those bytes are written in groups of three as four characters drawn from a 64-character alphabet, which is why the output runs about a third longer than the input. Both directions are available from a single tab switch, and the decoding side is forgiving: whitespace and line breaks are stripped, and the URL-safe substitutes for plus and slash are converted back so a token lifted from a URL or a JWT decodes cleanly. Text beyond the basic multilingual plane costs more than one Base64 character per letter.
Encode text to Base64 or decode Base64 back to text, with full UTF-8 support (emoji and non-Latin scripts included). The decoder also accepts URL-safe Base64 (with - and _ characters) and ignores whitespace and line breaks.
Private Base64 Encoder / Decoder In Your Browser
Base64 Encoder / Decoder is processed locally with client-side JavaScript. Your files never touch a server, and there is no queue to wait in.
How to use Base64 Encoder / Decoder
Choose the Encode tab, then paste plain text into the box marked Plain input.
Read the Encoded result below and copy it straight into your code, header or markup.
Switch to the Decode tab when you have a Base64 string to read, and paste it into Encoded input.
Check the Decoded result for stray characters such as a trailing newline that a sender may have added.
- UTF-8 throughout, so emoji, accents and Cyrillic or CJK text round-trip correctly
- Decoding tolerates whitespace, line breaks and the URL-safe - and _ characters
- Single tab switch between encoding and decoding, both updating as you type
- Encoding output expands by the standard one-third, padding with = where needed
- A developer putting a small UTF-8 JSON payload into an HTTP header, where raw non-ASCII bytes are not permitted.
- A support engineer decoding the Base64 blob inside a data URI to see what an email template actually contains.
- A student checking what a sentence looks like once every character has been swapped for a safe alphabet.