Hex to Text Converter

Paste hex bytes in almost any notation and get the UTF-8 text they represent.

Loading tool…

About the Hex to Text

The decoder strips common notation before converting: whitespace, :, -, ,, ;, 0x, \x and %. So 48 65 6c 6c 6f, 48:65:6C:6C:6F, 0x48,0x65,0x6c,0x6c,0x6f and \x48\x65\x6c\x6c\x6f all decode to Hello. Upper and lower case digits are both accepted.

The bytes are decoded strictly as UTF-8. If they are not valid UTF-8 — for example a Latin-1 byte like e9 on its own, a truncated multi-byte sequence, or binary data such as an image header — you get an error instead of replacement characters, so you know the data is not plain text. An odd number of digits or a non-hex character is reported with the offending value.

Typical uses: reading hex dumps from Wireshark or xxd, decoding strings stored as hex in databases or logs, and checking what a \x-escaped string contains.

How to use it

  1. Paste the hex bytes in any common notation.
  2. Read the decoded text in the output pane.
  3. Fix any reported invalid digit or odd length.
  4. Copy the text, or use ⇄ Swap to re-encode it.

Frequently asked questions

Why do I get “These bytes are not valid UTF-8 text”?
The data is either binary or uses another encoding such as Latin-1 or Windows-1252. In Latin-1, é is the single byte E9, which is not valid UTF-8 on its own.
Can I paste output from xxd or hexdump?
Paste only the hex columns. Offsets and the ASCII column on the right contain non-hex text and would be rejected.
Does the case of the hex digits matter?
No. 4A and 4a are the same byte.

Related tools