Hex Decoder (Hex to Text)

Convert hexadecimal byte values back to readable text. Accepts space-separated, comma-separated, or continuous hex strings.

Your data never leaves your browser

How to Use

  1. 1

    Paste hex values

    Enter hex bytes in any common format: space-separated (48 65 6c), colon-separated (48:65:6c), or continuous (48656c).

  2. 2

    Click Decode from Hex

    The hex bytes are interpreted as UTF-8 and converted to readable text.

  3. 3

    Copy the result

    Click Copy to copy the decoded text.

What is Hex Decoder?

A hex decoder converts hexadecimal byte values back into readable text. Each pair of hex digits (00–FF) represents one byte; the decoder takes those bytes, interprets them as UTF-8, and returns the original string. This is the inverse of hex encoding — if you have hex output from a debugger, network packet capture, or log file, the hex decoder turns it back into something you can actually read.

Hexadecimal is the standard human-readable representation of binary data. You see it everywhere: hex dumps of binary files (`xxd`, `hexdump`), MAC addresses, color codes (#FF5733), cryptographic hashes (MD5, SHA-256), TCP/IP packet captures, and assembly language. When debugging encoding issues or analyzing wire protocols, you often end up staring at a long string of hex bytes that needs to be converted back to text.

This online hex decoder accepts any common hex format. Space-separated (`48 65 6c`), colon-separated (`48:65:6c`), `0x` prefixes (`0x48 0x65 0x6c`), or continuous strings (`48656c`) all work — the tool strips non-hex characters and processes the remaining digits. Each pair becomes one UTF-8 byte. ASCII characters are one byte each; multi-byte characters (accented letters, CJK, emoji) decode correctly across two to four bytes. All processing runs in your browser; your hex data never leaves your machine.

For the reverse operation, use our [Hex Encoder](/tools/hex-encode/). Working with Base64? See [Base64 Decoder](/tools/base64-decode/). For URL percent-encoded values, try [URL Decoder](/tools/url-decode/). To understand how byte-level encodings work, read [Base64 Encoding Explained](/blog/base64-encoding-explained/).

FAQ

What formats does it accept?
Any format works — the tool strips everything except hex digits (0-9, a-f, A-F). So '48 65 6C', '48:65:6C', '0x48 0x65 0x6C', and '48656C' all produce the same result.
What happens with an odd number of hex digits?
The tool throws an error because each byte requires exactly two hex digits. Make sure your input has an even number of hex characters.
Can I decode hex strings with '0x' prefix or space separators?
Yes, the tool handles common hex formats. You can paste hex with 0x prefix, colon-separated (AA:BB:CC), space-separated (AA BB CC), or plain concatenated (AABBCC) — all are recognized and decoded correctly.
What is the difference between hex and Base64?
Both are binary-to-text encodings. Hex uses 16 characters (0–9, a–f) and produces 2 characters per byte (50% overhead is actually 100% — output is twice the input size). Base64 uses 64 characters and produces ~4 characters per 3 bytes (33% overhead). Hex is human-readable and great for debugging, but Base64 is more space-efficient and is the standard for transmitting binary data through text channels (JSON, email, data URIs).
How do I decode a hex dump from xxd or hexdump?
`xxd` and `hexdump -C` produce output that includes line offsets and ASCII columns alongside the hex bytes. Strip everything except the hex bytes themselves before pasting — most often that means selecting the middle column. The tool ignores anything that isn't a hex digit, so you can paste a `xxd` line like `00000000: 4865 6c6c 6f` and it will decode the hex part correctly.

Related Articles

Related Tools