~/frontend-tools/base64-encoder-decoder
Base64 Encoder and Decoder
Encode text to Base64 or decode it back. Unicode text, including accents and emoji, is handled correctly through UTF-8, and you can switch to the URL-safe alphabet used in tokens and URLs. Invalid input gets a clear error.
Using the Base64 Encoder / Decoder
What Base64 is
Base64 represents binary data using 64 safe characters: A to Z, a to z, 0 to 9, plus and slash. It lets data travel through systems built for text, such as email, JSON and data URLs. It is an encoding, not encryption: anyone can decode it.
UTF-8 and Unicode
The browser's basic btoa() function fails on characters outside Latin-1, such as emoji or Urdu script. This tool converts text to UTF-8 bytes first and encodes those, so every character round-trips correctly.
URL-safe Base64
Plus, slash and equals signs have special meanings in URLs. The URL-safe variant, used in JSON Web Tokens and many APIs, replaces plus with minus and slash with underscore and drops the padding. Decoding accepts both variants automatically.
Size
Base64 output is about a third larger than the input, because every three bytes become four characters. That is why embedding large images as data URLs makes pages heavier.
Common places you meet Base64
You will see Base64 in data URLs such as data:image/svg+xml;base64,..., in email attachments, in the middle section of JSON Web Tokens, and in API credentials sent with HTTP Basic authentication. Decoding a token here shows its readable contents, but anyone can do the same, which is why tokens must never contain secrets.
Frequently asked questions
Is Base64 secure?
No. It hides nothing; it only changes the representation. Never use it to protect passwords or secrets.
Can I encode files?
This tool encodes text. For images, most code editors and build tools can create data URLs directly.
Is my text uploaded?
No, encoding and decoding run in your browser.