Base64 that handles real text
Base64 represents binary data with 64 safe ASCII characters, so it can travel through email, JSON, URLs and HTML. It’s encoding, not encryption, anyone can decode it.
The browser’s built-in btoa() fails on anything outside Latin-1 (“é”, “€”, emoji). This tool first converts your text to UTF-8 bytes and then encodes those, the way servers and other languages do, so accented text and emoji round-trip correctly.
Options
- URL-safe replaces
+and/with-and_and drops=padding (RFC 4648 §5), as used in JWTs and URL parameters. - Wrap at 76 inserts line breaks every 76 characters, as MIME email requires.
Decoding accepts standard and URL-safe Base64, missing padding, line breaks, and whole data:…;base64, URLs. It reports the number of bytes and whether they form valid UTF-8 text (if not, you’re probably looking at an image or other binary file).
Size rule of thumb: Base64 output is about 4/3 the size of the input bytes.
Worked example
Here is what the Base64 Encoder / Decoder returns for its built-in example. Settings used: Direction: Encode; URL-safe (- _ no padding): off; Wrap at 76 (MIME): off. Click Try an example in the tool above to load it, then change it as you like.
Héllo, wörld! 👋SMOpbGxvLCB3w7ZybGQhIPCfkYs=Questions
How do I decode Base64 to text?
Choose Decode and paste the Base64 string. Line breaks and missing padding are handled automatically.
Is Base64 encryption?
No. It is a reversible encoding with no key; anyone can decode it.
Last reviewed · How Textkiln tools work