Skip to content
ZeroServer.tools

Hex to Text Converter

Convert hexadecimal byte values back to readable UTF-8 text.

Accepts hex pairs separated by spaces, commas, or no separator. The 0x prefix is stripped automatically.

Decoded Text

Decoding Hex Byte Sequences

Paste hex bytes in any common format — space-separated (48 65 6c), comma-separated (48,65,6c), with 0x prefixes, or as a continuous string (48656c) — and the tool strips the decoration, groups every two nibbles into a byte, then decodes the resulting byte array as UTF-8. Multi-byte characters like accented letters and emoji are handled correctly. An error appears if the input contains non-hex characters or an odd number of nibbles. All processing is local — nothing leaves your browser.

Built and maintained by Meet Shah · Last updated

What this tool is used for

  • Turning a hex dump from a packet capture or a database blob back into readable text.
  • Recovering a string that a log wrote as bytes.
  • Checking what a hex-encoded field actually contains.
  • Reading a hex payload from a protocol trace.
  • Confirming that a byte sequence really is text before treating it as such.

Frequently Asked Questions

Which input formats are accepted?
Space-separated, comma-separated, 0x-prefixed, or one unbroken run of digits — all four reduce to the same byte array. Prefixes and separators are removed before the digits are paired, so 0x48,0x65 and 4865 decode identically.
Why does my byte-order mark vanish?
Because TextDecoder strips a leading UTF-8 BOM by default. EF BB BF 41 decodes to just A, not a zero-width character followed by A. Usually welcome, but it does mean the decoded text is one character shorter than the byte count suggests.
What happens to bytes that are not valid UTF-8?
Each malformed sequence becomes U+FFFD, the replacement character �. The decoder is non-fatal, so it never refuses a byte array outright. Replacement characters scattered through otherwise readable output are the signal that the source was some other encoding — most often Windows-1252.
Why complain about an odd number of digits?
Because a byte is exactly two hex digits, so an odd count means one digit is missing and nothing indicates where. Padding the front and padding the back produce different text, so the tool refuses rather than guessing which reading you meant.
Can I paste a hex dump from a debugger?
The hex column pastes cleanly, since whitespace is ignored. Remove the address column and the ASCII gutter first though — their characters are not hex digits, so they are reported as invalid input rather than skipped over.
Why does my decoded text end in unexpected characters?
Usually a length or encoding mismatch — an odd number of hex digits, or bytes that are UTF-16 rather than UTF-8. A trailing null or a repeated pattern of alternating zeros is the classic sign of the latter.

Common errors and gotchas

  • Assuming the bytes are ASCII, when anything above 0x7F depends entirely on the encoding.
  • Feeding in an odd number of hex digits, which cannot form whole bytes.
  • Leaving a `0x` prefix or separators in place when the decoder expects only digits.
  • Splitting a multi-byte character across the input boundary, which decodes to a replacement character.
  • Expecting printable output from bytes that are control codes or binary data.

Related Converters tools

Private & free — this tool runs entirely in your browser.

IndieKitShip your Next.js startup in days.affiliate