Tools

Base64 & URL

Plain text
Encoded

About Base64 & URL Encoder/Decoder

Switch between Base64 and URL-percent encoding, type in either box, and the other updates instantly — the tool detects whether your input is already encoded and decodes it, or encodes plain text if not. Base64 handles full UTF-8 (emoji included) correctly using the browser's text encoder rather than naive btoa. Nothing is uploaded anywhere.

Frequently asked questions

Does this handle emoji and non-English text in Base64?

Yes. Text is UTF-8 encoded before Base64 conversion (and UTF-8 decoded after), so emoji and any language round-trip correctly — unlike plain btoa()/atob().

What's the difference between Base64 and URL encoding?

Base64 turns arbitrary bytes into an A-Z/a-z/0-9/+//= alphabet, commonly used for embedding binary data in text (e.g. data URLs, auth headers). URL (percent) encoding escapes characters that aren't safe in a URL, like spaces and &.

How does it know whether to encode or decode?

It tries to decode your input first; if that fails (not valid Base64 / not valid percent-encoding), it treats the input as plain text and encodes it instead. Use the swap button to flip direction explicitly.

Does anything get sent to a server?

No. Encoding and decoding happen entirely in your browser.

Feedback Support