Hex Decoder

Runs in browser Encoding

Accepts hex with or without spaces, 0x prefixes or colons and decodes it as UTF-8 (or Latin-1), reporting invalid digits precisely.

Privacy: This tool runs entirely in your browser. Your input never leaves your device.
Loading tool…

How to use Hex Decoder

  1. Paste the hex bytes in any common format.
  2. Choose the text encoding.
  3. Check the warnings for skipped characters.
  4. Copy the decoded text or the Base64 form.

Hex Decoder features

  • Accepts continuous hex, spaces, commas, colons, 0x/\x prefixes, %XX and C array syntax
  • Decode as UTF-8, Latin-1, UTF-16 LE or UTF-16 BE
  • Reports invalid characters with positions; strict mode rejects them
  • Warns on odd digit counts and invalid UTF-8; detects binary content and file types
  • Shows the same bytes as Base64

Hex Decoder example

Decode 0x-prefixed bytes

Input:

0x48 0x65 0x6c 0x6c 0x6f

Output:

Hello

Frequently asked questions about Hex Decoder

Which input formats are accepted?

Continuous hex (48656c6c6f), space/comma/colon separated bytes, 0x or \x prefixes, percent-encoding (%48%65) and C array syntax with braces and comments — all mixed in one paste.

What happens with an odd number of digits?

The last digit cannot form a byte and is dropped with a warning. It usually means a leading zero is missing somewhere (e.g. "a" instead of "0a").

The output is garbled — what encoding should I choose?

UTF-8 is the default and right for most modern data. If you see � characters, try Latin-1 for legacy single-byte text or UTF-16 LE/BE for Windows and Java strings.

Can I get the bytes in another form?

Yes, the decoded bytes are also shown as Base64 so you can paste them into a JSON field or a data: URI.

Technical notes

The parser scans for hexadecimal digits, skipping recognised separators and prefixes, then pairs digits into bytes. Because it never throws, mixed or slightly malformed pastes still produce a result, with every irregularity listed so you can decide whether the data is trustworthy.