Hex to Text Converter
Convert hexadecimal byte values back to text.
Was this tool helpful?
Thanks for the feedback!
The Hex to Text Converter reads hexadecimal byte values such as 48 65 6c 6c 6f and turns each pair of hex digits into one character, giving "Hello". It helps when you are reading a hex dump, a serial-port log, network packet bytes or a CTF puzzle and want to see the plain text hidden in the numbers.
Accepted formats
Spaces, line breaks and 0x prefixes are removed before decoding, so all of these give a readable result:
48 65 6c 6c 6f→ Hello48656c6c6f20576f726c64→ Hello World0x48 0x69→ Hi
Upper and lower case digits are both fine. After cleaning, the string is cut into pairs from the left, and each pair becomes the character with that code.
Reading hex by eye
| Hex range | Characters |
|---|---|
| 20 | space |
| 30–39 | digits 0–9 |
| 41–5A | capitals A–Z |
| 61–7A | lowercase a–z |
| 0A, 0D | line feed, carriage return |
So 20 between two words is a space, and 0D 0A at the end of a line is the Windows-style line ending you often see in serial and HTTP traffic.
Why Hindi or emoji come out as ठsymbols
This converter maps every byte to a character on its own, which is correct for ASCII text but not for UTF-8, where one character can take two to four bytes. The Devanagari letter न is stored as e0 a4 a8; decoded here, those three bytes become न. If you see sequences starting with à, à or â, the data is UTF-8. A workaround: put a % in front of every byte, as in %e0%a4%a8, and paste that into the URL Decoder, which reads percent-encoded bytes as UTF-8 and returns न.
Inputs that produce garbage
- Other separators. Only spaces, line breaks and
0xare stripped. Colons (48:65), commas,\xescapes or%signs stay in and knock the pairing out of step, producing invisible control characters. Replace them with spaces first. - An odd number of digits. The last single digit is left in the output as-is, so
486gives "H6". Check that nothing was lost when copying. - Offsets and ASCII columns. A dump from
xxdorhexdump -Cstarts each line with an address and ends with a text column. Copy only the byte columns, or the addresses will be decoded as characters. - Binary data. Bytes from images or compressed files have no text meaning and will show as symbols.
Common sources of hex text
MySQL's HEX() function and many database tools show binary columns this way, Arduino and embedded developers log UART bytes in hex, and packet analysers such as Wireshark list payloads byte by byte. To produce hex from your own text for comparison, use the Text to Hex Converter.