LogoTools
Runs entirely in your browser - nothing is uploaded

Base64, URL encoding, and HTML entity escaping solve three different problems that get confused for each other constantly: Base64 turns arbitrary bytes into ASCII text (for embedding binary data in text formats), URL encoding escapes characters that aren't safe in a URL, and HTML entities escape characters that would otherwise be parsed as markup. This handles all three, plus encoding a local file directly to a Base64 data URL.

When you'd use this

Decoding a Base64 API payload or JWT segment to read its contents, or encoding a small image into a data URL to embed directly in CSS or HTML without a separate file request.

URL-encoding a query parameter that contains spaces or special characters, or escaping text before inserting it into an HTML template so it doesn't get parsed as markup.

Common errors

"Invalid character" on Base64 decode usually means the input is not plain Base64. Often it's Base64URL, which uses `-` and `_` in place of `+` and `/`. Otherwise it has had line breaks or padding stripped out that the decoder needs.

Double-encoding is the classic mistake with URL escaping: encoding an already-encoded string turns every % into %25, which breaks the original encoding instead of harmlessly repeating it.

Frequently asked questions

Is Base64 encoding a form of encryption?

No. Base64 is a reversible encoding, not encryption. Anyone can decode it without a key or a password. It exists to represent binary data as safe ASCII text, never to hide or protect that data.

What's the difference between URL encoding and HTML entity encoding?

URL encoding (percent-encoding) escapes characters that aren't valid inside a URL, like spaces becoming %20. HTML entity encoding escapes characters that have special meaning in HTML markup, like < becoming &lt; so it displays as a literal character instead of being parsed as a tag. They solve different problems and using the wrong one won't fix output that ends up in the wrong context.