Hex to Text Converter
Decode hex bytes to text in UTF-8, UTF-16, ASCII, Latin-1 or Windows-1252. Accepts spaces, 0x and \x prefixes and lists every character with its code point.
Convert hexadecimal bytes to text using UTF-8, ASCII, Latin-1, Windows-1252 or UTF-16. A character table shows code points and source bytes, making it easier to inspect debugger output, packet captures and encoded database values.
How to use this tool
- Paste complete byte groups, for example 48 69, 0x4869, \x48\x69 or %48%69. Spaces, commas, colons and semicolons may separate groups.
- Pick the character encoding — UTF-8 is right for almost all modern data.
- Read the decoded text, plus the escaped version that reveals tabs, line breaks and other invisible characters.
- Check the character table if something looks wrong.
Formula
byte value = 16 × first digit + second digit · UTF-8: 0xxxxxxx = 1 byte, 110xxxxx 10xxxxxx = 2 bytes, 1110xxxx + 2 continuation bytes = 3, 11110xxx + 3 continuation bytes = 4
Hex digits A–F stand for 10–15. In UTF-8 the first byte says how many bytes the character uses, and every following byte starts with the bits 10. Invalid sequences are replaced with U+FFFD (�) the same way browsers do. ASCII, Latin-1 and Windows-1252 use one byte per character; UTF-16 uses two or four. An odd UTF-16 byte count is refused. Latin-1 here means the actual U+0000–U+00FF mapping, not the browser label that aliases Windows-1252. The character table is limited to 400 rows.
Example
The default input 48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21 is 13 bytes that decode to Hello, World! — for example 0x48 = 4 × 16 + 8 = 72, the code for H. Entering e2 82 ac in UTF-8 gives a single character, € (U+20AC). The same three bytes read as Windows-1252 give €, the garbled text you see when UTF-8 is opened with the wrong encoding.
Frequently asked questions
Why do I see characters like é instead of é?
The text is UTF-8 but is being read as Latin-1 or Windows-1252. é is C3 A9 in UTF-8; read one byte at a time those are à and ©. Choose UTF-8 to decode it correctly.
What does the � symbol mean?
It may replace an invalid byte sequence, or be a literal U+FFFD already encoded in the data. When decoding errors occur, the note reports their count and first byte position. Check the encoding and whether the data was cut off.
UTF-16 BE or LE?
It is the byte order of each 2-byte unit. Windows text files and memory dumps from PCs are usually little-endian (48 00 = H); network protocols and Java’s writeChars() use big-endian (00 48 = H). A leading FF FE or FE FF byte-order mark tells you which.
Is ASCII the same as UTF-8?
For bytes 00 to 7F, yes — UTF-8 was designed so plain ASCII text is already valid UTF-8. Bytes 80 and above are not ASCII at all.
Sources
Last updated: 2026-10-30