Encode text or files to Base64 and decode Base64 strings back to plain text. Supports Unicode.
The Base64 Encoder / Decoder converts plain text or binary data into Base64 format and back, entirely in your browser with no data sent to any server. It is an essential tool for developers working with APIs, email attachments, data URIs, and authentication tokens. Full Unicode support ensures that non-ASCII characters such as accented letters, emoji, and CJK scripts are handled correctly.
Base64 encoding works by taking every three bytes of binary input (24 bits) and splitting them into four groups of six bits each, then mapping each 6-bit value to one of 64 printable ASCII characters (A-Z, a-z, 0-9, +, /). If the input length is not a multiple of three, padding characters (=) are appended to make the output length a multiple of four. This ensures binary or non-ASCII data can be safely transmitted through text-only channels such as email or JSON payloads.
Yes - all encoding and decoding happens entirely within your browser using JavaScript's built-in btoa and atob functions combined with URI encoding for full Unicode support. No data is ever sent to a server, stored in a database, or logged in any way. You can verify this by using your browser's network inspector tab, which will show zero outbound requests when you encode or decode.
Yes. This tool uses a encodeURIComponent + unescape technique before calling btoa, which correctly handles the full Unicode range including multi-byte characters, accented letters, CJK ideographs, and emoji. Decoding reverses the process using decodeURIComponent after atob, so round-trip fidelity is guaranteed for any text your browser can represent.
This tool is optimised for text input; for large binary files such as images or archives, use the dedicated Image to Base64 tool instead. Very large inputs (several megabytes of text) may cause the browser tab to become temporarily unresponsive because JavaScript is single-threaded. Additionally, Base64-encoded output is approximately 33% larger than the original input due to the 6-bit to 8-bit character mapping overhead.
Command-line tools like base64 on Linux/macOS or PowerShell's Convert.ToBase64String require terminal access and may not handle Unicode consistently across operating systems. This browser-based tool requires no installation, works on any modern browser including Chrome, Firefox, Safari, and Edge, and provides the same RFC 4648-compliant Base64 output with correct Unicode handling on every platform.