Base64 Encoder / Decoder
Encode text to Base64 and decode it back again, safely handling emoji, accents and any other non-ASCII characters.
Input
Result
Private by design. Encoding and decoding happen in JavaScript on your own device. Nothing you paste is sent anywhere.
How Base64 works
What it is
Base64 is a way of representing binary data as ASCII text, using a 64-character
alphabet (A-Z, a-z, 0-9, + and /). It is how emails embed
images, how data URIs dress up inline images, and how many JSON payloads carry
binary fields.
Unicode safety
Plain btoa() throws on characters outside Latin-1, which trips over
emoji and accented letters. This tool converts the text to UTF-8 bytes first, so
anything you can type is handled. Decoding uses a strict UTF-8 reader so invalid or
truncated Base64 is reported instead of silently corrupted.
Common uses
Hand-rolling a data URI for an image, decoding an API token to eyeball its payload, pasting binary output into a chat that mangles raw bytes, and storing small blobs in formats that only take text.
How to use the Base64 Encoder / Decoder
- Paste text to encode, or Base64 to decode.
- The other box updates automatically.
- Copy the result.
Frequently asked questions
Is it UTF-8 safe?
Yes. Non-ASCII characters are encoded correctly using UTF-8 before Base64, and decoded back the same way.
Can it decode any Base64 string?
It decodes standard Base64; URL-safe variants may need their special characters replaced first.
Is my data sent anywhere?
No. Encoding and decoding run entirely in your browser.