Encoder & Decoder

Encode text and decode it again – Base64, URL encoding, hex, HTML entities, Unicode escapes, punycode and more. Everything runs locally in your browser.

Direction

Standard Base64 (RFC 4648) using “+”, “/” and “=” padding.

0 characters

0 characters

Everything runs locally in your browser – nothing is uploaded.

Which method for what?

Base64 packs arbitrary bytes into printable characters – typical for email attachments, data URLs and HTTP basic auth. The URL-safe variant replaces “+” and “/” with “-” and “_” and drops the padding; that is exactly the form used inside JSON Web Tokens.Base32 is case-insensitive and is what you meet in TOTP secrets for two-factor apps.

For URL encoding, picking the right variant matters: “URL (component)” also encodes “/”, “?”, “&” and “=”, which is correct for individual query values. “URL (full)” leaves those structural characters alone and suits a complete address where only spaces and non-ASCII characters need escaping.

HTML entities escape &, <, >, " and ' – the most important protection when user text is rendered into a page. Punycode translates internationalized domains into their ASCII form: “müller.de” becomes “xn--mller-kva.de”, the way DNS and certificates see it.

Whole lists at once

With “Process each line separately”, every line is encoded or decoded on its own instead of treating the text as one block – handy for value lists, exported columns or several tokens in a row. Blank lines are kept so input and output lines still line up.

FAQ

Is my input uploaded anywhere?
No. Every method is implemented in JavaScript and runs in your browser. There is no server that could see your text – that includes credentials or tokens.

Is Base64 encryption?
No. Base64, hex and ROT13 are plain encodings: anyone can reverse them without a key. They make data transportable, not secret. For confidentiality you need real encryption.

Why do I get "not valid UTF-8 text" when decoding?
Then the decoded bytes do not form displayable text – usually because the method does not match (say Base64 instead of Base32), or because the data is binary, like an image.

What happens to accented characters and emoji?
Text is always converted to UTF-8 before encoding – exactly what browsers, HTTP and modern APIs do. So “ä” becomes two bytes and an emoji becomes four.