Hex to String

Paste a hex dump in any common layout and read the text those bytes spell out.

Hex digits
Text
Runs locally in your browser

About the Hex to String

Hex dumps come with whatever punctuation the tool that produced them liked. Spaces, colons, dashes, commas, pipes, underscores, full stops and 0x prefixes are all stripped before decoding, so a MAC style 4A:6F:68:6E and a C style 0x4A 0x6F both work without editing. What is left has to be an even number of hexadecimal digits, since one byte always needs two.

Two error cases are reported rather than guessed at. A character outside the range 0 to 9 and A to F is named directly, which usually means a letter from the surrounding log slipped into the selection. An odd digit count is reported with its total, which means a digit was lost or an extra one crept in.

The encoding switch matters once bytes go above 7F. UTF-8 is the modern default and reassembles multi byte sequences into one character. Latin-1 maps each byte straight to the character with that number, which is what you want for output from an older Windows system or a fixed width mainframe extract. If the result still looks wrong, the bytes may not be text at all: try Base64 Encode to move them around safely instead. String to Hex performs the opposite conversion.

How to use

  1. Paste the hex bytes, with or without separators.
  2. Leave the encoding on UTF-8 unless the data predates it.
  3. Read the decoded text and copy it.

Common questions

Does it matter whether my hex is upper or lower case?
No. Both cases are accepted and can be mixed freely in the same paste.
Why do I get an odd digit count error?
Every byte needs exactly two hex digits, so an odd total means one digit is missing or one too many was pasted.
When should I pick Latin-1?
When the dump came from an older system where every byte is one character. UTF-8 would report those high bytes as broken sequences.
Are 0x prefixes and colons handled?
Yes. Prefixes and the usual separators are removed automatically before decoding.