Hex to Text

Convert between hexadecimal bytes and UTF-8 text, with a byte dump alongside.

Read Bytes as Text, and Text as Bytes

Hexadecimal is how bytes are written down when a human has to look at them — in a protocol dump, a log file, a debugger, a file-format specification. Converting between that and readable text is a constant small task when working close to the metal.

The detail that trips people up is that a character is not a byte. In UTF-8, “é” is two bytes and an emoji is four. This shows the byte count and the character count side by side so the difference is visible rather than surprising.

Key features

  • Both directions — text to hex and hex back to text, with the result carried across when you switch.
  • Four output styles — spaced, unseparated, colon-delimited or 0x escapes for pasting into code.
  • A real byte dump — offset, hex and printable ASCII, the way a hex editor shows it.
  • Tolerant input — spaces, colons, newlines and 0x prefixes are all accepted and ignored.
  • Honest about invalid UTF-8 — bytes that are not valid text are decoded as best they can be, and flagged.
100% client-side — no data leaves your machine

This tool runs entirely inside your browser using native Web APIs. Your files and text are never uploaded to a server, never logged and never shared with third parties.

How to use: Hex to Text

  1. Choose a direction
    Text → Hex, or Hex → Text.
  2. Paste your input
    Hex can be spaced, run together, colon-separated or 0x-prefixed.
  3. Check the counts
    Bytes and characters differ whenever the text is not pure ASCII.
  4. Read the dump
    Offset, hex and ASCII, which is where a malformed byte becomes obvious.

Technical specifications

Processing locationEntirely in your browser — no server round trip
Data uploadedNone. Files and text never leave your device
PriceFree — no account, no trial, no usage cap
CategoryConverters
Works offlineYes, once the page has loaded
Browser supportChrome 90+, Edge 90+, Firefox 90+, Safari 15+
Interface languagesEnglish, 中文, हिन्दी, Español, العربية

Frequently asked questions

Why does my text produce more bytes than characters?

Because UTF-8 is variable width. ASCII is one byte per character, accented Latin is two, most CJK is three and emoji are four. The counters show both so the difference is never a surprise.

What does "odd number of digits" mean?

Every byte is exactly two hex digits, so a valid hex string always has an even length. An odd count means a digit is missing — usually a truncated copy or a stray character removed from the middle.

Why do I see replacement characters in the output?

Those bytes are not valid UTF-8. That usually means the data is in a different encoding, or is not text at all — the hex of a PNG file decodes to nonsense because it is an image, not a string.

Can I use this on binary files?

You can paste the hex of one and read the dump, which is useful for checking a file signature. Converting binary to text is not meaningful beyond that, and the replacement characters are telling you so.

Related tools

Back to all tools