A text field in a transport envelope
Encode Unicode text when a text-only channel expects standard Base64.
Confirm the receiving system expects standard Base64 rather than base64url or MIME-wrapped output.
Encode Unicode text as Base64 or decode Base64 back to readable UTF-8 text, with copying, swapping, samples, and text download.
Content last reviewed
0 characters · 0 words
Full UTF-8 support: multi-byte characters (accents, emoji, non-Latin scripts) round-trip correctly, unlike a plain btoa() call. Encoding grows data ~33% — that's the format, not a bug.
Overview
Encode Unicode text into the standard A–Z, a–z, 0–9, +, / alphabet or decode it back. The output updates locally, reports malformed input, and can be swapped into the other direction without presenting Base64 as encryption.
Accents, emoji, and non-Latin scripts are converted to bytes before standard Base64 encoding.
A two-state control selects the direction; Swap moves a valid result into the other side.
Invalid alphabet, padding, or byte sequences produce an error instead of a plausible-looking result.
Save encoded-base64.txt or decoded-text.txt after reviewing the live output.
How it works
Three steps, in the order the tool above actually takes them.
Use Encode for plain text or Decode for a standard Base64 string.
The page handles text only; binary files and base64url are outside this control.
Resolve any decode error, then copy, download, or Swap for a quick round-trip check.
Use cases
The jobs this page is usually opened for, and the setting that makes each one quick.
Encode Unicode text when a text-only channel expects standard Base64.
Confirm the receiving system expects standard Base64 rather than base64url or MIME-wrapped output.
Decode a non-sensitive value to confirm the bytes it represents.
Readable output proves encoding only; it does not establish who created the value.
Check that a pipeline preserves accents, emoji, and scripts outside ASCII.
Encode, Swap, and compare the decoded result with the exact original text.
Representation is not protection
There is no key and no access control. Its job is to represent bytes in text-safe characters, so security decisions must happen elsewhere.
| Property | Common mistake | Accurate interpretation |
|---|---|---|
| Readable payload | The unfamiliar string conceals a secret. | Anyone can decode standard Base64 with the same public mapping. |
| Padding | Equals signs are encryption metadata. | They complete a four-character group when the final byte group is short. |
| base64url | Standard Base64 is always safe in a URL segment. | The URL-safe variant substitutes - and _ and commonly omits padding; this page emits the standard alphabet. |
| Size | Encoding compresses text. | Four output characters represent each three-byte group, so the representation normally grows. |
The unfamiliar string conceals a secret.
Anyone can decode standard Base64 with the same public mapping.
Equals signs are encryption metadata.
They complete a four-character group when the final byte group is short.
Standard Base64 is always safe in a URL segment.
The URL-safe variant substitutes - and _ and commonly omits padding; this page emits the standard alphabet.
Encoding compresses text.
Four output characters represent each three-byte group, so the representation normally grows.
Privacy
Plain text and encoded text stay in this tab. They are neither uploaded nor autosaved; clipboard and text download actions happen only when selected.
Encoding, parsing, formatting, generation, comparison, and cryptographic operations run in browser code. Form values and uploaded text files are not sent to a processing API.
Code, tokens, secrets, URLs, and generated outputs stay in component memory until the page reloads or closes. Split-pane tools remember only the divider percentage for the current tab session.
The page reads the clipboard only after a Paste action and writes it only after Copy. A local download is created only when you choose the tool's download control.
The page shell can send the tool slug, never the editor contents or filename. The endpoint is rate-limited using a transient requesting address and is skipped for Do Not Track or Global Privacy Control.
More detail in how processing works and our privacy policy.
Limits
The values this tool actually enforces, not a rounded-up version.
This tool works on text, not file uploads — there is no way to hand it a binary and get its Base64. It emits the standard alphabet only, not the URL-safe base64url variant from RFC 4648 §5, and it does not wrap output at a fixed column width the way PEM does.
FAQ
The ones that actually come up.
Guides