Encode turns the text into UTF-8 bytes, then Base64. Decode reverses that. The id of this tool is base64.
Runs in your browser. Nothing you enter is uploaded.
| Encode | aGVsbG8= |
|---|---|
| Decode of aGVsbG8= | hello |
| Encode | Y2Fmw6k= |
|---|---|
| Decode of Y2Fmw6k= | café |
é is the UTF-8 bytes C3 A9, so the Base64 is Y2Fmw6k=.
| Button | Function |
|---|---|
| Encode | btoa of the UTF-8 bytes (encodeURIComponent, then the legacy unescape step, then btoa) |
| Decode | atob, then the matching UTF-8 decode. Whitespace at the ends of the input is trimmed. |
| Not valid Base64 | Status "Not valid Base64". The output box is not replaced. |
Encode any text to Base64 or decode a Base64 string back to plain text in one click. Base64 is a way of representing binary or text data using only 64 safe ASCII characters, which is why it shows up everywhere: data URIs, JWTs, email attachments, API tokens and config files. This tool is UTF-8 safe, so emoji and non-Latin characters round-trip correctly instead of turning into garbage. Paste your input, choose encode or decode, and copy the result. Everything is processed locally in your browser, so your tokens and payloads are never sent to a server.
aGVsbG8=
Yes. Text is encoded as UTF-8 first. café encodes to Y2Fmw6k= and decodes back to café.
No. Base64 is an encoding. Anyone can decode it.
No. Encode and decode run in the browser.
Give your verdict. Sign-in needed to vote and comment.
Link this tool from a README, doc or site. The badge links back to this page.
[](https://yourhack.ai/base64)