Base64 and URL Encoder/Decoder

Encode or decode Base64 and URL-encoded strings instantly, right in your browser.

Plain text
Encoded result
Result will appear here.

What is the Base64 & URL Encoder/Decoder?

Base64 encoding turns arbitrary data (text, binary) into a string of only letters, digits, and a few symbols — safe to embed in places that don't handle raw bytes well, like JSON payloads, data URIs, or Basic Auth headers. URL encoding (percent-encoding) instead escapes characters that aren't safe in a URL, like spaces and ampersands, replacing them with %XX sequences.

Both are everyday necessities when working with APIs, URLs, and web data — not encryption, just a reversible format conversion.

How to use it

  1. Choose Base64 or URL mode.
  2. Choose Encode or Decode.
  3. Type or paste your text — the result updates instantly.
  4. Click "⇄ Swap" to flip the result back into the input and reverse direction.

How it works

Base64 encoding maps every 3 bytes of input into 4 output characters from a 64-character alphabet (A-Z, a-z, 0-9, +, /). This tool also handles full UTF-8 text correctly (accents, emoji), which the browser's raw btoa()/atob() functions don't do on their own.

URL encoding replaces any character outside a small safe set with a % followed by its hex byte value — so a space becomes %20, an & becomes %26, and so on.

Example

Encoding "Hello, World!" in Base64:

Input: Hello, World!
Output: SGVsbG8sIFdvcmxkIQ==

Frequently asked questions

Is Base64 encoding the same as encryption?

No — Base64 is a reversible encoding format, not encryption. Anyone can decode it instantly; it provides no security or confidentiality.

Why does my Base64 output end with = signs?

Those are padding characters, added when the input length isn't a multiple of 3 bytes, so the output aligns to a multiple of 4 characters.

When should I use URL encoding instead of Base64?

Use URL encoding for values going into a URL (query parameters, path segments). Use Base64 when you need to safely embed binary or arbitrary text somewhere that only accepts a limited character set, like a data URI or an HTTP header.

Does this handle emoji and non-English text?

Yes — both modes here correctly round-trip full UTF-8 text, including emoji and accented characters.

Is my data sent anywhere?

No — all encoding and decoding happens entirely in your browser.