Base64 Encoder / Decoder.

Base64 encode and decode, plus URL encode and decode — browser-only, nothing sent anywhere.

Input
Output

Output will appear here…

Capabilities

What You Get

Four transforms over one field, with Unicode handled correctly and no payload ever leaving the tab.

Encode And Decode

Convert to Base64 and back without switching tools or modes.

URL Encoding

percent-encode and decode query strings alongside Base64 in one place.

Unicode Safe

Handles multi-byte characters and emoji rather than mangling them.

Instant Output

Results appear as you type, with invalid input reported clearly.

One-Click Copy

Send the transformed output straight to your clipboard.

Never Transmitted

Safe for tokens, credentials, and payloads — nothing leaves the browser.

Related tools.

More free browser-based utilities, connected by category and use case.

All Tools

FAQ

Base64 Encoder / Decoder FAQ.

What is Base64 encoding?

Base64 is a binary-to-text encoding scheme that converts binary data into a string of 64 ASCII characters (A–Z, a–z, 0–9, +, /). It's used to safely transmit binary data over systems designed to handle text — like email, HTML attributes, or HTTP headers. The encoded output is about 33% larger than the original.

Is Base64 a form of encryption?

No. Base64 is encoding, not encryption. Anyone can decode a Base64 string without a key. It's used for data representation, not security. If you need to protect data, use proper encryption (AES, RSA) rather than Base64.

What is the difference between Base64 and Base64URL?

Base64URL replaces + with - and / with _ and removes padding = characters. This makes the output safe for use in URLs and file names without percent-encoding. JWT tokens use Base64URL encoding.

What is URL encoding?

URL encoding (percent-encoding) converts characters that aren't safe in URLs into a % followed by two hex digits. For example, space becomes %20 and & becomes %26. It's required when passing special characters as URL query parameters.

Why does Base64-encoded output have = at the end?

Base64 encodes data in 3-byte groups. If the input length isn't divisible by 3, padding characters (=) are added to make the output length a multiple of 4. One or two = characters at the end is normal and expected.

Does this tool handle Unicode and emoji?

Yes. The encoder uses encodeURIComponent before calling btoa(), which handles multi-byte characters including accented letters, CJK characters, and emoji that would otherwise cause errors with the native btoa() function.