Encoding
Base64 Encode / Decode
Base64 Encode / Decode converts text into a Base64 string and back again. Results update the moment you type or paste — there is no separate "convert" button to press.
Everything is processed entirely in your browser and is never sent to a server.
Related Tools
URL Encode / Decode
URL Encode / Decode converts text to percent-encoded URL format and back. Supports query-parameter and full-URL scopes, with optional form-encoding for spaces. Results update in real time. Runs entirely in your browser.
JWT Decoder
Paste a JWT (JSON Web Token) to split it into header, payload, and signature and view each as formatted JSON. Standard claims (iat / exp / nbf) are converted to human-readable times, with expiry warnings. Optional HS256 / HS384 / HS512 signature verification included. Runs entirely in your browser.
About Base64 Encode / Decode
Base64 Encode / Decode converts text into a Base64 string and back again. Results update the moment you type or paste — there is no separate "convert" button to press.
In the encode direction, your text is encoded as UTF-8 and then converted to Base64. Multibyte content — Japanese, Chinese, emojis, special symbols — is handled correctly without any extra setup. In the decode direction, a Base64 string is parsed and interpreted as UTF-8 to recover the original text. If the input is not valid Base64, or if the decoded bytes are not valid UTF-8, a clear error message is shown in the output area.
Two options are available: "URL-safe Base64" and "Wrap at 76 chars". URL-safe Base64 is the variant used in URLs, file names, and JWT headers / payloads — it swaps "+" / "/" for "-" / "_" and drops the trailing "=" padding. The 76-character wrap matches MIME (email bodies, PEM-encoded certificates, etc.).
Everything you enter is processed entirely in your browser; nothing is sent to a server. That makes the tool safe for tokens, secrets, or anything containing personal information. Runs entirely in your browser.
How to use
- Pick a direction at the top — "Text → Base64" or "Base64 → Text".
- Type or paste your input. The output panel updates in real time.
- Toggle "URL-safe Base64" or "Wrap at 76 chars" if you need the matching variant.
- Use the "Copy" button at the top of the output panel to copy the result to the clipboard.
- To try a different input, hit "Clear" and paste again.
Use cases
- Verifying email attachments or other SMTP-style protocols that embed binary as text.
- Expanding "data:image/png;base64,..." data URIs to inspect the embedded image or PDF.
- Decoding URL-safe Base64 JWT headers / payloads back into readable JSON during debugging.
- Spot-checking sample tokens or ciphertext from API documentation while wiring up a client.
- Decoding long, line-wrapped Base64 strings copy-pasted from email or PEM files — whitespace is stripped automatically.
Notes
- Text is encoded as UTF-8 before being converted to Base64. Japanese, Chinese, emojis, and other multibyte content all round-trip correctly.
- On decode, every whitespace character in the input (half-width space, tab, newline, etc.) is stripped automatically. Multi-line Base64 strings can be pasted as-is.
- Trailing "=" padding is reconstructed automatically when decoding, so URL-safe Base64 strings without padding also work without manual fixes.
- With "URL-safe Base64" on, the encoded output drops "+", "/", and "=" so it can be embedded directly into URLs, file names, or JWTs. Decoding reverses the substitution automatically.
- "Wrap at 76 chars" only applies to standard (non-URL-safe) encoded output. Use it when you need MIME / PEM-style line breaks.
- When the input contains invalid characters, has invalid length, or does not decode to valid UTF-8, the output area shows the matching error message.