How do I use it?
Choose Encode or Decode, pick a format, and type or paste into the input box. The result appears instantly below, with counts for characters in, characters out and output bytes. Swap moves the output back to the input and flips direction, so you can chain conversions.
In decode mode the tool watches what you paste and, if it looks like a different format from the one selected, offers to switch for you.
Which formats are supported?
- Base64 – standard and URL-safe, with padding and line-wrap options, for text or files
- URL / percent-encoding – component or whole-URL, with
+-for-space handling - HTML entities – named or numeric
- JWT – decodes the header and payload and explains the claims
- Hex, binary and decimal – UTF-8 byte views with configurable separators
- Unicode escapes –
\uXXXXand\u{…}styles - ROT13 / Caesar and Morse code
Common pattern reference
SGVsbG8= | Base64 for “Hello” |
%20 | A space, percent-encoded |
& | The & character as an HTML entity |
48 65 6c 6c 6f | “Hello” in hex bytes |
eyJhbGciOi… | The start of a JWT header ({"alg":…) |
Is my data sent anywhere?
No. Every conversion runs in your browser with JavaScript. Nothing you paste – including JWTs and anything that decodes from Base64 – is uploaded, logged or stored.
Does this encrypt anything?
No. Encoding changes how data is represented so it survives a text-only channel; it is trivially reversible and provides no secrecy. If you need a one-way fingerprint, use the hash generator. If you need to tidy JSON you have just decoded, use the JSON formatter.
Why is the decoded text sometimes an error about UTF-8?
Base64, hex and binary can hold any bytes, not just text. If the decoded bytes are not valid UTF-8 there is no string to show – the data is binary. When you decode Base64, a Download button always appears so you can save the raw bytes instead.