Hex Decoder

Online hexadecimal to text converter — decode hex to text, encode text to hex, copy and paste the result.

This free online hex decoder converts hexadecimal (Base16) strings to readable UTF-8 or ASCII text — paste any hex string to decode it to text instantly, or encode text to hex with one click. Auto-detects space, comma, 0x-prefix, and no-delimiter formats. Swap decode/encode in one click, adjust output delimiter and case, then copy the result. No signup required, runs entirely in your browser.

Examples:

Mode

Input delimiter

Output delimiter

Hex case

Quick reference

48 65 6c 6c 6f
→ "Hello"
0x48 0x65 0x6c
→ "Hel"
48656c6c6f
→ "Hello" (no delim)
e2 9c 93
→ ✓ (UTF-8 multi-byte)
f0 9f 98 8a
→ 😊 (4-byte emoji)

Frequently asked questions

Hexadecimal encodes binary data as base-16 characters (0–9 and A–F). Two hex digits represent one byte — for example, the letter 'A' has ASCII code 65 decimal, which is 41 in hex. Hex is used for color codes, memory addresses, cryptographic hashes, and debugging binary data because it maps directly to raw bytes with no ambiguity.
Paste your hex string into the input above with the mode set to Hex → Text. The tool auto-detects the delimiter and converts each hex pair to a byte, then decodes the byte array as UTF-8 text. Multi-byte characters including emoji are handled correctly.
There is no single standard. Common formats: space-separated (48 65 6c), comma-separated (48,65,6c), 0x-prefixed (0x48 0x65), and no delimiter (48656c). This tool auto-detects all of them, or you can force a specific delimiter in the options panel.
0x is a C-language convention that flags a number as hexadecimal. 0x48 means the hex value 48 (decimal 72, the ASCII code for 'H'). It is notation only — the decoder strips it before processing. You will see it in source code, memory addresses, and low-level protocol dumps.
Both encode binary data as printable text. Hex uses 2 characters per byte (100% overhead) and is easy to inspect byte-by-byte. Base64 uses ~1.33 characters per byte (33% overhead) and is more compact. Use hex for debugging and inspection; Base64 for data transmission, data URLs, and JWT tokens where size matters.
Paste the hex string and set the mode to Hex → Text. The decoder assembles the hex pairs into a byte array and passes it through the browser's TextDecoder with UTF-8 encoding. Multi-byte UTF-8 sequences — including accented letters, CJK characters, and emoji — are decoded correctly as long as the hex represents valid UTF-8. For plain ASCII text (bytes 0x00–0x7F), UTF-8 and ASCII are identical, so the decoder works for both — 48 65 6c 6c 6f decodes to "Hello" under either encoding.
Garbled output means the bytes do not represent valid UTF-8 text. Possible causes: the original data was in a different encoding (Latin-1, Windows-1252), the hex represents binary data (compiled code, image bytes, encrypted payload), or the delimiter was misdetected (try switching from Auto-detect to the specific delimiter that matches your input).
This tool decodes hex to UTF-8 text and works best for text payloads. Binary files (images, PDFs, compiled binaries) will produce mostly unreadable output. However, strings embedded in binaries — filenames, error messages, version strings — will decode correctly if you copy just those byte sequences. Look for contiguous runs of bytes in the printable ASCII range (0x20–0x7e).