Base64 Encode & Decode
Base64 encoding rewrites data using only 64 safe characters so it can travel through systems that expect plain text, such as email, JSON and data URLs. This tool converts text to Base64 and back, handles accents and emoji correctly, and produces the URL-safe variant used in JWTs.
Runs entirely in your browser — nothing you enter is uploaded.
DeveloperAbout Base64 encoding
Base64 is not encryption, and treating it as such is the mistake worth avoiding. It has no key and reversing it is trivial — this page does it instantly — so anything encoded is readable by anyone who has it. What it provides is safe transport: arbitrary bytes expressed in characters that survive systems which would otherwise mangle them.
The size cost is about a third: three bytes become four characters, so encoded data is roughly 33% larger than what went in. Unicode needs care too, since Base64 encodes bytes rather than characters — text is converted to UTF-8 first, which is why accents and emoji come back intact here and turn to mojibake in tools that skip that step. The URL-safe variant swaps two characters that have meaning in URLs and drops the padding.
Common questions
- Is Base64 a form of encryption?
- No, and this matters. Base64 is an encoding with no key, and decoding it requires nothing but the data itself. Anything you encode can be read by anyone who obtains it. Use it to move data safely through text-only systems; never use it to hide a password, a token or anything else that needs to stay secret.
- What is the URL-safe variant for?
- Standard Base64 uses plus and slash, both of which have meaning inside a URL, and equals signs for padding, which can be mangled by some systems. The URL-safe variant substitutes minus and underscore and omits the padding, so the result can be dropped into a query string or a path unescaped. It is what JSON Web Tokens use.
- Why do accented characters and emoji sometimes break?
- Because Base64 encodes bytes, not characters, so text must be converted to UTF-8 before encoding and back afterwards. Tools that skip this step handle plain English fine and corrupt everything else, which is why a name with an accent or a message with an emoji comes back as mojibake. This page does the conversion in both directions.
- How much larger does Base64 make my data?
- About a third. Every three bytes are represented as four characters, so the encoded form is roughly 33% bigger, plus a little padding. That is the price of text safety, and it is why embedding large images as data URLs in a stylesheet or an email makes the payload noticeably heavier than attaching the file.