Base64 Decode and Encode
Paste Base64 to read it as text, or paste text to encode it. Handles UTF-8 correctly, accepts the URL-safe alphabet, and tolerates missing padding. It runs in your browser - the text never leaves the page.
Decoding Base64
Decoding reverses the transform: every four Base64 characters become three bytes, and those bytes are then read as UTF-8 text. Whitespace and line breaks are ignored, so you can paste a wrapped block straight out of an email header or a config file.
If the result looks like nonsense, the data was probably not text to begin with. Base64 is used just as often for images, keys and compressed blobs, and decoding one of those to a text box only ever produces garbage - the decode worked, the content simply is not readable.
Encoding to Base64
Base64 takes arbitrary bytes and rewrites them using 64 printable characters - A-Z, a-z, 0-9, plus + and /. Three bytes of input map onto four characters of output, which is why encoded data is always about 33% larger than what went in.
When the input does not divide evenly into three, the output is padded with one or two = characters. That is the reason so much Base64 ends in an equals sign, and it is a decent clue that you are looking at Base64 in the first place.
The point of all this is transport. Email headers, data URIs, JSON payloads and HTTP basic auth are text channels that mangle or reject raw binary, so the bytes are rewritten into characters those channels are guaranteed to carry intact.
Base64 is not encryption
This is worth stating plainly, because it is the single most common mistake made with it. Base64 has no key. Anyone who can see the string can decode it - on this page, in a browser console, or with one shell command. It hides nothing from anybody.
Encoding is about making data survive a channel. Encryption is about making data unreadable without a secret. If you want the second thing, use the AES encryption tool - and you will notice its output is itself Base64, because the ciphertext is raw bytes that need to survive being pasted into an email. That is the two working together, in the right order: encrypt first, then encode.
Questions
Is Base64 a form of encryption?
No. Base64 is an encoding with no key, so anyone can decode it. It makes binary data safe to send through text-only channels. To make data unreadable without a secret you need encryption, such as AES.
Why does Base64 often end with one or two equals signs?
That is padding. Base64 encodes three bytes at a time into four characters, so when the input length is not a multiple of three the output is padded with one or two equals signs to complete the final group.
What is URL-safe Base64?
A variant that replaces the characters plus and slash with hyphen and underscore, and usually drops the equals padding, because the standard characters have special meaning inside URLs. JSON Web Tokens use it. This tool reads both variants automatically and can produce either.
Why is my decoded text unreadable?
Because the original data was probably not text. Base64 is used for images, cryptographic keys and compressed files as often as for text, and decoding those into a text box produces meaningless characters even though the decode succeeded.
Does Base64 handle accents, emoji and non-Latin scripts?
Yes. This tool encodes text as UTF-8 before converting it, and decodes back through UTF-8, so accented characters, emoji and non-Latin scripts survive a round trip intact.
Is my data uploaded when I use this tool?
No. Encoding and decoding both happen in your browser. No request carrying your text is made, which you can verify in the Network tab of your browser's developer tools.
Related tools
Encoding is not privacy
If you keep notes that would matter if someone else read them, encoding them is not the answer. Snoq is a Windows notes app that keeps everything in an AES-256 encrypted database on your own disk, with Argon2id key derivation, no account, no cloud and no telemetry. It is free.
Download Snoq for Windows