Tools

Base64 encoder & decoder

Convert text to Base64 and back, right in your browser. It is UTF-8 safe: emoji, accents, and non-Latin scripts round-trip correctly, unlike a bare btoa() call. Flip on URL-safe mode for tokens and query strings, and copy the result in one click. Nothing you type is ever uploaded.

Output appears here.
Text → Base64Runs entirely in your browser. Nothing is uploaded.

About Base64 encoding

Base64 represents binary data using 64 printable ASCII characters, so it can travel safely through channels that expect text: data URIs, JSON payloads, JWTs, email, and HTTP headers. Every three bytes become four characters, which is why encoded output is roughly a third larger than the source. Base64 is an encoding, not encryption: it hides nothing, so never treat it as a way to protect secrets.

Frequently asked questions

Is my data uploaded anywhere?
No. Every conversion runs locally in your browser using the native TextEncoder, btoa, and atob APIs. Nothing is sent to a server, so it is safe for tokens, config values, and other sensitive strings.
Does it handle emoji and non-English text?
Yes. Naive btoa() throws on characters outside Latin-1. This tool encodes the text to UTF-8 bytes first, so emoji, accents, and CJK characters round-trip correctly in both directions.
What is URL-safe Base64?
URL-safe Base64 replaces the "+" and "/" characters with "-" and "_" and strips the "=" padding, so the result can be dropped into a URL or filename without escaping. Toggle URL-safe on to produce or read that variant.
Why does decoding show "Invalid Base64"?
The input contains characters outside the Base64 alphabet, has a length that cannot be valid, or decodes to bytes that are not valid UTF-8. Remove stray characters or check that you copied the whole string.