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

  1. Paste text to encode, or Base64 to decode.
  2. The other box updates automatically.
  3. 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.