Options
Hex
Drop the file to open it

Paste hex bytes and read them as UTF-8 text, or type text and see its hex bytes, updated as you type. The decoder accepts hex in almost any format: spaced or run together, 0x lists, \x escapes, URL percent-encoding, C arrays, and xxd or hexdump output. The Breakdown tab shows which bytes make up each character, and invalid UTF-8 is pointed out byte by byte instead of silently turning into question marks. You can also decode as UTF-16, Latin-1, or Windows-1252, and turn any file into a hex dump. Everything runs in your browser.

How to convert hex to UTF-8 text

  1. Choose Hex to text and paste your hex. Spaces, commas, and prefixes like 0x are fine.
  2. The text appears on the right. Invisible characters such as line breaks, tabs, and zero-width spaces are labeled so you can see them.
  3. Open Breakdown to see each character with its code point and bytes.
  4. Click Copy, Download the text, or save the raw bytes as a .bin file.

To go the other way, choose Text to hex, type or paste text, and pick a format. Swap turns the result into the new input so you can check a round trip.

How UTF-8 stores characters

UTF-8 uses one to four bytes per character. Plain English letters and digits take one byte each, which is why ASCII text looks the same in UTF-8. Accented letters and most other alphabets take two bytes, symbols such as the euro sign take three, and emoji take four. The first byte tells a decoder how many bytes belong to the character, and every byte after it starts with the bits 10, which is why it falls in the range 80 to BF.

CharacterCode pointUTF-8 bytesBytes
AU+0041411
e with an acute accentU+00E9C3 A92
Euro signU+20ACE2 82 AC3
Grinning face emojiU+1F600F0 9F 98 804
Byte order markU+FEFFEF BB BF3

Hex formats the decoder accepts

FormatExampleWhere you see it
Plain48656c6c6fHashes, database blobs, log files
Spaced or separated48 65 6C, 48:65:6C, 48-65-6CNetwork tools, MAC-style dumps
0x list or C array{0x48, 0x65, 0x6C}C, C++, Arduino, and firmware code
Escapes\x48\x65\x6CPython bytes, shell strings, exploits and payloads
Percent-encoding%48%65%6CURLs and form data
Hex dump00000000: 4865 6c6c 6f Helloxxd, hexdump -C, and debuggers
Code pointsU+0048 U+0065Unicode charts and documentation

Fixing garbled text

When text shows up as é instead of an accented e, UTF-8 bytes were read as Windows-1252 or Latin-1. Text to hex with Windows-1252 encoding, followed by Swap and Hex to text as UTF-8, recovers the original. The reverse problem, a single unexpected byte like E9 on its own, means the text was saved as Latin-1 or Windows-1252, and the decoder suggests switching. If every other byte is 00, the data is UTF-16, and the decoder suggests that too.

Frequently asked questions

What does an invalid UTF-8 byte mean?

It means the bytes don't form a valid UTF-8 character at that point, often because the data uses another encoding or was cut off in the middle of a character. The tool marks the bad bytes in red and shows where they are, and the text gets a replacement character there, just like a browser would show.

Is hex to UTF-8 the same as hex to ASCII?

For bytes 00 to 7F, yes. ASCII is the first 128 characters of UTF-8 and the bytes are the same. Bytes from 80 to FF are where they differ: in UTF-8 they combine into multi-byte characters like accented letters and emoji.

Why do I get an odd number of hex digits error?

Each byte is exactly two hex digits, so a missing or extra digit leaves half a byte. The tool decodes everything before it and tells you, so you can find the typo.

Can I convert a file to hex?

Yes. Choose Text to hex and open any file, including images and other binary files. You'll get its bytes in the format you pick, including a hex dump with offsets.

Can I turn hex back into a file?

Yes. In Hex to text, the .bin button saves the decoded bytes exactly as they are, which works for images, archives, or any other binary data.

Is my data uploaded anywhere?

No. Everything is converted in your browser and nothing is sent to a server.

Our Full Dev Tool Library

Flipper File