Convert text to hexadecimal bytes or decode hex back to text (UTF-8). For debugging, encoding and data work.
Text • hexadecimal
Encoding and decoding share the page, so any result can be pasted straight back to confirm it round-trips to the text you started with — the quickest check that nothing was mangled.
Results are recalculated on every keystroke, with no submit step and no page reload, so a value can be adjusted until the answer looks right rather than guessed once.
Everything runs in your browser — no account, no uploads, nothing leaves your device.
Hexadecimal (base 16) is the compact notation programmers use to read raw bytes: each byte becomes two hex digits (0–9, A–F). Converting text to hex — and hex back to text — is essential for debugging file formats, network packets, character encodings and low-level data.
This tool encodes text to space-separated hex bytes (UTF-8) and decodes hex back to text instantly and privately. There are no uploads, and it keeps working offline once the page has loaded.
Hexadecimal represents each byte as exactly two digits, which makes it the standard way to display binary data in a readable form. The reason two digits work so neatly is that 16 is 2⁴, so each hex digit maps to precisely four bits and each byte to precisely two hex digits, with no arithmetic required to convert between them. That property is why hex dominates in memory dumps, colour codes, MAC addresses and cryptographic hashes — it is four times more compact than binary while remaining trivially convertible to it.
Character → byte value → two hex digitsEach hex digit = 4 bits (a nibble)Hex to decimal: (first digit × 16) + second digitDigits: 0–9 then A=10 through F=15where:
Assumptions: Hex is a display format, not an encoding — it represents whatever bytes it is given. For text beyond ASCII, the underlying character encoding must be known before the bytes mean anything.
Convert two characters to hex, then show the nibble relationship to binary.
Result"Hi" = 48 69 in hexadecimal
That "69" for the letter i is a coincidence of ASCII, not a pattern. The nibble mapping is the durable insight — it is why reading a hex dump gives you the binary for free, and why colour code #FF8000 immediately tells you red is at maximum and blue at zero.
Hexadecimal earns its place because it maps cleanly onto how bytes are built. Each hex digit represents exactly four bits, so a byte is always two digits and the two halves of the byte can be read separately — which is why bit masks, colour values and permission flags are all conventionally written this way rather than in decimal, where the boundary between the halves is invisible.
Encoding text as hex doubles its size, and that cost buys transparency rather than compactness. Base64 carries the same bytes in about a third more space instead of twice, so it is what protocols use when volume matters. Hex survives wherever a human has to read the result: in a memory dump, a packet capture or a checksum, being able to point at one byte and say what it holds is worth the extra characters.
Two cautions are worth carrying. First, the hex here represents the UTF-8 bytes of the text, so a single visible character may produce two, three or four pairs of digits rather than one. Second, hex is an encoding and not a cipher — it is fully reversible by anyone who recognises it, which is exactly the property that makes it useful for debugging and useless for protecting anything.