Decode hexadecimal byte sequences back into readable text. Accepts spaced pairs (48 65 6c 6c 6f), continuous strings (48656c6c6f), or optional 0x prefixes. Processing runs entirely in your browser—nothing is uploaded.
Algorithm
Whitespace is stripped and an optional leading 0x is removed. The remaining string must contain only hex digits (0–9, a–f, A–F) and an even character count. Each pair of digits becomes one byte (0–255) via parseInt(pair, 16), and bytes are joined with String.fromCharCode into the output string.
When to use it
Recovering messages from hex dumps in logs, verifying encoders by round-tripping with the text-to-hex tool, or converting firmware and protocol hex fields into human-readable strings during debugging.
Limitations
Invalid characters, odd digit counts, or empty input after normalization return an error instead of partial output. Output uses Latin-1 code units; bytes that are not valid UTF-8 may display as replacement characters. Very large inputs may be slow in the browser. The decoder does not infer character encodings beyond raw byte-to-character mapping.
Example
48 65 6c 6c 6f decodes to Hello.