Base16, better known as hexadecimal, is the encoding that represents every byte as two characters from 0–9 and A–F. It is defined in RFC 4648 alongside Base32 and Base64, and it shows up everywhere developers inspect raw data: hashes, byte dumps, color codes, and wire formats. This tool encodes text to uppercase hex and decodes hex back to text, with full UTF-8 handling and clear validation.
How it works
To encode, the tool runs your text through a UTF-8 encoder to get the underlying bytes, then prints each byte as a zero-padded, two-digit uppercase hex value. A byte with value 71 becomes 47, the hex for the letter G.
To decode, it strips whitespace, checks that only hex digits remain, and requires an even number of them — because each byte is exactly two digits. Pairs are parsed back into bytes and run through a strict UTF-8 decoder. If the bytes are not valid UTF-8, or the input has illegal characters or an odd length, you get a precise error rather than a silent wrong answer.
Example
Encoding Gera Tools produces 47657261 20546F6F6C73 (shown without the space): G=47, e=65, r=72, a=61, space=20, and so on. Decoding 47 65 72 61 returns Gera.
Notes
Base16 is not compression — it doubles the size of the data, since one byte always becomes two characters. Everything runs locally in your browser, so nothing you type is uploaded.