Hex to Text Converter
Turn hex bytes into readable text (UTF-8), or show a hex dump when the bytes are binary — with spaces, colons and 0x prefixes handled.
How to use
- Paste the hex — separators such as spaces, colons, commas and a leading 0x are fine.
- Read the text, or the hex dump if the bytes are not text.
- For UTF-16 text (00 after every letter), add the step “UTF-16LE → text”.
Steps
Output
From hex digits to text
Hex writes each byte as two digits from 0–9 and A–F, so 0x41 is 65, the letter A. The converter ignores the separators that tools add — spaces from a hex editor, colons from Wireshark or OpenSSL, commas from code — and a leading 0x. The bytes are then read as UTF-8, which is identical to ASCII for plain English and also covers every other script and emoji.
When the bytes are not text
If the bytes are not valid UTF-8 you get a hex dump instead: offset, sixteen bytes per row, and the printable characters on the right. The first bytes usually tell you what the data is. 4D 5A (“MZ”) starts a Windows executable, 1F 8B is gzip (add the Gunzip step), 50 4B 03 04 (“PK”) is a ZIP or Office document, and 25 50 44 46 (“%PDF”) is a PDF.
Windows strings are often UTF-16LE, where each ASCII character is followed by 00. Hex decode followed by “UTF-16LE → text” turns them back into readable text.
Where hex comes from
Packet captures (Wireshark’s “Copy as hex stream”), database BLOB columns, certificate fingerprints, registry exports (hex: values in .reg files), log fields that escape binary data, and payloads in exploit write-ups. Text → hex does the reverse when you need to build a test value.
Common questions
How do I convert hex to text?
Paste the hex digits. Every pair of digits is one byte, and the bytes are read as UTF-8 text. 48 65 6C 6C 6F becomes Hello.
Why do I get a hex dump instead of text?
The bytes are not valid UTF-8 text — for example a compressed or executable file. The dump shows the offset, the bytes and their printable ASCII characters, and the first bytes often identify the format.
Why is there a 00 after every letter?
That is UTF-16LE, used by Windows and PowerShell. Add the step “UTF-16LE → text” after hex decode.
Known limitations
- Text is read as UTF-8 (which includes ASCII). Other legacy code pages are shown as a hex dump.
- The preview of binary data stops at 4 KB; Copy hex gives everything.
- Prefixes like \x or 0x inside the string (other than one at the start) are not stripped — remove them first or use Unicode unescape for \x.
- Browser extensions with access to this site can read the page. For sensitive data, use a private window with extensions off. How the lock works
Related reading on CipherMind
Standards & references
- RFC 4648 — Base16 (hex) encoding (opens in a new tab)
- RFC 3629 — UTF-8 (opens in a new tab)
- List of file signatures (magic numbers) (opens in a new tab)