Base64 Encoder / Decoder
Paste text and get Base64 instantly — or paste Base64 and get your text back. Full Unicode support, live conversion as you type, and everything happens in your browser. Your data never touches a server.
Plain Text
Base64
How to Use Base64 Encoder / Decoder
Choose Encode or Decode
Select Encode to convert plain text into Base64, or Decode to turn a Base64 string back into readable text.
Paste or type your input
Enter your text in the left panel. The converted result appears live in the right panel as you type — no button to press.
Copy the result
Click Copy Output to put the converted text on your clipboard, ready to paste into your code, config, or terminal.
About Base64 Encoder / Decoder
What is Base64 encoding?
Base64 is a way of representing binary data using only 64 safe, printable characters: A-Z, a-z, 0-9, plus + and /. It exists because many systems — email protocols, JSON APIs, URLs, HTML attributes — can only reliably carry plain text. Encoding data as Base64 lets you embed images in CSS, send binary payloads through JSON, store credentials in config files, and pass data through systems that would otherwise mangle it. The trade-off is size: Base64 output is roughly 33% larger than the original input.
Why Unicode handling matters
The browser's built-in btoa() function famously breaks on any character outside the Latin-1 range — emoji, accented letters, Chinese, Arabic, or Cyrillic text all throw errors or produce garbage. This tool encodes your text to UTF-8 bytes first using the TextEncoder API, then converts those bytes to Base64, which is the same approach production systems use. Decoding reverses the process with TextDecoder, so round-tripping any text — including emoji and multi-byte scripts — always gives you back exactly what you started with.
Private by design
Everything on this page runs in your browser using JavaScript — there is no upload, no server-side processing, and no logging of what you encode or decode. That matters because Base64 strings frequently contain sensitive material: API keys, basic-auth credentials, JWT segments, and configuration secrets. You can safely paste production tokens here without them ever leaving your machine. It also means the tool works offline once the page has loaded, and there are no size limits beyond what your browser can handle.
Common uses for Base64 Encoder / Decoder
- Decode Base64 values found in config files, environment variables, or Kubernetes secrets
- Encode credentials for HTTP Basic Authentication headers
- Embed small images or fonts as data URIs in CSS and HTML
- Inspect Base64 payloads in API responses and webhook bodies during debugging
- Prepare binary-safe strings for JSON payloads and email attachments
Frequently Asked Questions
Is Base64 encryption?
No. Base64 is an encoding, not encryption — anyone can decode it instantly, with no key required. It only changes how data is represented, not who can read it. Never use Base64 to protect secrets; use proper encryption for that. Base64's job is making binary data safe to transmit through text-only channels like JSON, email, and URLs.
Why is my decoded output garbled or failing?
The most common causes are truncated input (Base64 length should be a multiple of 4, padded with =), URL-safe variants that use - and _ instead of + and /, or extra characters like line breaks mixed in. This tool strips whitespace automatically, but if you're decoding a JWT segment, note that JWTs use base64url encoding — try our JWT Decoder instead.
Does this tool handle emoji and non-English text?
Yes. Input is converted to UTF-8 bytes before encoding, which is the standard approach used by servers and libraries. Emoji, Chinese, Arabic, accented characters, and any other Unicode text encode and decode correctly. This is a real difference from naive tools built directly on btoa(), which throw errors on anything outside the Latin-1 character range.
Is there a size limit?
There's no hard limit imposed by the tool — because processing happens locally in your browser, capacity depends on your device's memory. Text of several megabytes converts instantly on any modern machine. For encoding entire files rather than text, a dedicated file-to-Base64 workflow is a better fit than a text box.
Is my data sent to a server?
No. Encoding and decoding run entirely in your browser with client-side JavaScript. Nothing you type or paste is uploaded, stored, or logged anywhere. This makes it safe to work with API keys, tokens, and other sensitive strings — they never leave your machine, and the tool even keeps working if you go offline after loading the page.