Hex Decoder

Turn hexadecimal bytes back into readable text.

Reverse
Input
HEX input
Output
Result

About this tool


Hex arrives in many shapes, space-separated from a packet dump, colon-separated from a certificate, 0x-prefixed from source code, or unbroken from a database field. This decoder normalises all of them, so you can paste whatever you have.

It is strict about the two things that genuinely indicate a problem: a non-hex character, and an odd number of digits. Both mean the data is incomplete or corrupt, and both are reported precisely rather than guessed around.

How to use it

  1. Paste or upload your hexDrop a file onto the input pane, use the file picker, or paste the text directly.
  2. Adjust the options if neededThe defaults suit most input; open Options to change the behaviour.
  3. DecodePress Decode, or use Ctrl+Enter (Cmd+Enter on macOS).
  4. Copy or downloadCopy the result, or download it as a .txt file.

Worked examples


Each example below is executed against this tool by the test suite, so what you see is what the tool actually produces.

Space-separated hex

Input

48 65 6c 6c 6f

Output

Hello

Mixed formatting accepted

Input

0x48:0x69, 21

Output

Hi!

Prefixes, colons and commas are all ignored.

What to watch for


The details that decide whether a conversion is correct, and where information can be lost without any error being raised.

Separators and prefixes are ignored
Spaces, colons, commas, hyphens, line breaks and 0x prefixes are all stripped before decoding, so hex copied from a hex editor, a Wireshark dump or a code literal works without cleanup.
An odd digit count is an error
Every byte needs exactly two hex digits, so an odd total means a digit is missing. The tool reports the count rather than silently padding, because padding would produce plausible-looking but wrong output, the error is the useful result.
Bytes are decoded as UTF-8
The byte sequence is interpreted as UTF-8, so multi-byte sequences reassemble into their characters. Bytes that are not valid UTF-8 produce a clear error stating how many bytes were decoded, rather than replacement characters that look like data corruption.

Limitations


  • Interprets bytes as UTF-8; other encodings are not supported.
  • Binary data that is not valid text produces an error rather than a byte dump.
  • Processing happens in your browser, so very large inputs are bounded by available memory. Files above roughly 10 MB are handled but will feel slower, and multi-hundred-megabyte files are better suited to a command-line tool.

Questions


Do I need to clean up my hex first?
No. Spaces, colons, commas, hyphens, newlines and 0x prefixes are all handled automatically.
Why does it reject an odd number of digits?
Each byte is two digits, so an odd count means data is missing. Padding would produce wrong output that looks right, which is worse than an error.
Why is my result not valid UTF-8?
The bytes are binary rather than text, an image header, compressed data, or a different character encoding.