About the UTF-8 Decoder
What is a UTF-8 decoder?
When text travels between programs it often arrives as raw bytes — something like 48 65 6C 6C 6F. A UTF-8 decoder turns those bytes back into the words they represent. Paste the byte values, tell the tool what base they're in, and the readable text appears instantly on the right.
UTF-8 is a multi-byte encoding, so a single character can be spread across two, three or four bytes. This decoder reassembles them correctly using your browser's built-in TextDecoder, and if the bytes don't form valid UTF-8 it tells you rather than showing garbled output. Nothing is uploaded — it all happens on your machine.
How to Use This Tool
- Paste your bytes. Enter the byte values on the left, or open a
.txtfile of them. - Choose the format. Tell the tool whether the bytes are hexadecimal, binary or decimal.
- Match the layout. Pick the separator, use "None" for fixed-width bytes with no gaps, and strip a prefix such as
0xif present. - Read the text. The decoded string appears on the right — copy it or download it.
Reading the bytes
| UTF-8 (hex) | Bytes | Character |
|---|---|---|
| 48 | 1 | H |
| C3 A9 | 2 | é |
| E2 82 AC | 3 | € |
| F0 9F 98 80 | 4 | 😀 |
Common Use Cases
- Reading dumps: Turn byte listings from hex editors, packets or logs back into text.
- Fixing mojibake: Confirm what a byte sequence should say when a display got it wrong.
- Protocol work: Verify the text a byte stream carries in APIs, files or network traffic.
- CTFs & puzzles: Decode messages hidden as raw UTF-8 bytes.
Need to create bytes from text? Use the UTF-8 Encoder. Working with per-character codes instead of raw bytes? Try the ASCII to Text Converter.
Frequently Asked Questions
What input formats does it accept?
Hexadecimal, binary and decimal byte values. Separate them with spaces, commas, new lines or a custom character, or choose "None" for fixed-width bytes packed together. It can also strip a prefix like 0x.
Why do I get an "invalid UTF-8" message?
UTF-8 has strict rules about how multi-byte characters are built. If the bytes are in the wrong order, incomplete, or simply not valid UTF-8, the decoder flags it instead of inventing characters. Double-check the format and separator you selected.
Can it decode bytes with no separators?
Yes. Select "None" and it reads two hex digits, eight binary digits or three octal digits per byte. Decimal needs a separator because decimal bytes vary in length.
What's the difference between this and an ASCII decoder?
An ASCII decoder treats each number as one character code. A UTF-8 decoder treats the numbers as bytes and combines multi-byte sequences into single characters — which matters for anything beyond basic English.
Is my data processed on a server?
No. All decoding happens locally in your browser with the native TextDecoder API, so your bytes and the resulting text never leave your device.