Hex to Text — Online Hex to Text Converter
🔒 Runs in your browser — nothing is sent to a serverHex to text converter that turns any hexadecimal byte stream back into the original text in a single click. Paste hex in any common shape — space-separated `48 69`, compact `4869`, C-style `\x48\x69`, or prefixed `0x48, 0x49` — and this hex decoder strips the separators, parses each two-digit group into a byte, and rebuilds the original string. Pick UTF-8 (default — handles diacritics, CJK, Arabic and emoji) or strict 7-bit ASCII. Everything runs 100% inside your browser; your input never leaves your device, nothing is uploaded, logged or sent to any server.
Auto-detected — paste any of:
- 48 69 (space-separated)
- 4869 (compact, no separator)
- \x48\x69 (C-style escapes)
- 0x48, 0x49 (prefixed with comma)
Case-insensitive: `4869`, `4869` and `4869` all decode the same.
UTF-8 multi-byte sequences (diacritics, CJK, emoji) are combined automatically.
When to use a hex to text converter
A hex to text converter is the right tool any time a stream of hexadecimal bytes turns up where a human needs a readable payload: reading out a serial dump from a microcontroller, decoding a CTF puzzle printed as hex, sanity-checking the output of a custom encoder, dropping a `\x..\x..` literal from C source back into ASCII for review, or recovering the text content of a binary protocol frame. Because the decode runs fully in the browser, the stream never touches a server — which matters when the payload is a leaked token or a proprietary protocol field.
How hex translates back into text
Hex-to-text decoding is a three-step pipeline. First the input is normalised: `0x` and `\x` markers are stripped, separators (spaces, commas, semicolons, pipes) are removed, and casing is folded to lowercase. Second the cleaned hex string is parsed in groups of two digits, each producing one byte (0–255); odd lengths and any non-hex character are reported as a clear error. Third the byte sequence is fed into a character decoder: `TextDecoder("utf-8", {fatal: true})` for UTF-8, which combines multi-byte sequences (2 bytes for Greek/Cyrillic, 3 for CJK, 4 for emoji) back into Unicode code points, or a straight ASCII lookup that rejects any byte ≥`80`. Both paths run natively in the browser, so the hex translator never sends your input anywhere.
Examples
48 65 6c 6c 6fHello68657820746f2074657874hex to text\x66\x72\x65\x65\x2d\x63\x6f\x6e\x76\x65\x72\x74\x65\x72free-converter0x48, 0x65, 0x6c, 0x6c, 0x6fHelloce 93 ce b5 ce b9 ce b1Γεια