All encoding and decoding runs locally in your browser. Your data never leaves your device.
Encode or decode Base64 strings in milliseconds with zero server round-trips.
Generate URL-safe Base64 by replacing +, /, and = with URL-friendly characters.
Correctly encodes and decodes multi-byte Unicode characters including emoji and CJK text.
Copy the encoded or decoded result to your clipboard with a single click.
Works in any modern browser — no extensions, plugins, or accounts required.
Paste plain text in the left panel to encode, or paste a Base64 string in the right panel to decode.
Click "Encode" to convert text to Base64, "Decode" to convert Base64 back to text, or "URL-Safe Encode" for URL-compatible output.
Click the "Copy" button to copy the result to your clipboard, ready to paste into your code, email, or API request.
| Method | Character Set | Size Overhead | Best For |
|---|---|---|---|
| Base64 (Standard) | A-Z, a-z, 0-9, +, / | ~33% | Email attachments, data URIs, JWT |
| Base64 (URL-Safe) | A-Z, a-z, 0-9, -, _ | ~33% | URL parameters, filenames |
| URL Encoding | %XX hex pairs | Up to 300% | URL query strings |
| Hex Encoding | 0-9, A-F | 100% | Hash digests, color codes |
| ASCII85 | 33-117 ASCII range | ~25% | PDF internals, PostScript |
Encode and decode Base64 online free with FreeToolBox — instantly convert text strings, URLs, and data to Base64 encoding and back. Base64 is a fundamental encoding scheme in web development, widely used across APIs, email systems (MIME), authentication protocols (HTTP Basic Auth, JWT), and data embedding (HTML data URIs, CSS background images). Every web developer encounters Base64 regularly, whether debugging API responses, embedding small assets inline, or handling file uploads in JSON payloads.
This tool runs entirely in your browser using JavaScript's native btoa() and atob() functions — no data is ever sent to a server. It supports standard Base64 (RFC 4648) and URL-safe Base64 (replacing + with - and / with _, stripping = padding) for safe use in URLs and filenames. Full UTF-8 Unicode support means you can encode emoji, Chinese characters, Arabic text, and any other multi-byte content correctly. Simply paste your text, click a button, and copy the result. Completely free, no account required, no rate limits.
Use Base64 Encoder/Decoder when you need a quick local utility for encoded text, tokens, or embedded assets. If the next step is data inspection or JSON cleanup, continue with JSON Formatter. If you're turning images into embeddable strings, pair it with Image to Base64.
No-upload workflow: tokens, headers, and encoded content stay in your browser instead of being sent to an external utility site.
Use URL-safe Base64 when the encoded value will appear inside URLs, filenames, or tokens. It replaces + and / with URL-friendly characters and removes padding when required.
The single most important thing to understand about Base64 is that it is not encryption — it is only a way of representing binary data as text. Anyone can decode a Base64 string in seconds without a key. It exists so that binary data can survive in channels that expect text, like an email body, a JSON field, or a URL parameter. If you are protecting a secret, Base64 does not protect it. Use it for transport and storage of non-sensitive data, or as a step before actual encryption, never as a substitute for it.
Base64 represents every three bytes as four characters, so the encoded result is roughly a third larger than the input. That size increase is the price of text compatibility. If you are embedding a small logo or a thumbnail into a document or a data URI, the growth is usually fine. If you are embedding a large file, the expansion is worth keeping in mind — there may be a more space-efficient approach, or you may want to compress the data first and then encode, so you end up with less text overall.
Base64 output often ends with one or two "=" padding characters, and some encoders add line breaks for readability. These are harmless in most contexts, but they can cause problems if you copy the string into a context that does not allow them — a single URL, for example, should usually have the line breaks removed. When you decode, be sure the input is intact; a missing character or an extra space will produce garbage. Prefer a tool that gives you the raw string without added formatting, especially when you are going to paste it into code.