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
0xescapes 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
0xprefixes 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.
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
- Choose a direction
Text → Hex, or Hex → Text. - Paste your input
Hex can be spaced, run together, colon-separated or 0x-prefixed. - Check the counts
Bytes and characters differ whenever the text is not pure ASCII. - Read the dump
Offset, hex and ASCII, which is where a malformed byte becomes obvious.
Technical specifications
| Processing location | Entirely in your browser — no server round trip |
|---|---|
| Data uploaded | None. Files and text never leave your device |
| Price | Free — no account, no trial, no usage cap |
| Category | Converters |
| Works offline | Yes, once the page has loaded |
| Browser support | Chrome 90+, Edge 90+, Firefox 90+, Safari 15+ |
| Interface languages | English, 中文, हिन्दी, 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.