TEXT CODEC

Text Codec

Encode and decode between plain text and Base64, URL-safe Base64, percent-encoding, or hex β€” live in both directions.

Type in either box β€” the other updates live. Everything runs in your browser; nothing is sent anywhere, which is rather the point of having this on an internal network.

examples
plain text
encoded
encodings 101

Encoding is not encryption

Everything on this page is reversible by anyone β€” these formats exist to move bytes safely through channels that only tolerate certain characters, not to hide them. If you can paste it here and read it, so can everybody else. Secrets need actual cryptography.

Base64

Base64 maps every 3 bytes onto 4 characters from a 64-character alphabet (A-Z a-z 0-9 + /), padding the tail with =. That's why encoded output is ~33% bigger, why its length is always a multiple of 4, and why it survives email, JSON, and XML unharmed. The URL-safe variant swaps + / for - _ and usually drops the padding β€” that's the flavor in JWTs and URL parameters. Same data, different last two alphabet letters.

Percent-encoding

URLs reserve characters like ? & = / # for their own structure, so anything else rides as % plus two hex digits of its UTF-8 bytes: a space is %20, Γ© is %C3%A9. One legacy wrinkle: inside query strings, an old form-encoding rule also lets + mean a space β€” this tool accepts that on decode. Encode with encodeURIComponent-style strictness, decode generously.

Hex

Hex (base16) spells each byte as exactly two digits β€” twice the size of the original, but perfectly human-readable and byte-aligned, which is why hashes, MAC addresses, and packet dumps use it. This tool's decoder ignores whitespace, colons, and dashes, so 48:65:6C:6C:6F pastes straight from Wireshark.

Where UTF-8 fits

All three formats operate on bytes, but you type text β€” so text becomes bytes first, via UTF-8. ASCII characters are one byte each; Γ© is two, ζΌ’ is three, πŸ˜€ is four. That's why one emoji becomes eight hex digits, and why decoding random bytes as text can fail: not every byte sequence is valid UTF-8 (this tool tells you rather than producing mojibake).