Built and fact-checked by the DocNectar team — see our editorial standards
Key Features
Instant Calculation
Get accurate results in real time with our optimized algorithm.
Mobile Friendly
Fully responsive design. Works on all devices & screen sizes.
Privacy Focused
Your data stays on your device. We don't store any inputs.
100% Free
No hidden costs. This tool is completely free forever.
UTF-8 is the dominant character encoding on the modern web and in most software, precisely because it represents the original 128 ASCII characters as a single byte each (keeping old plain-text files and protocols fully compatible) while extending to 2, 3, or 4 bytes for everything else — accented letters, non-Latin scripts like Cyrillic or Chinese, and emoji. That variable-length design is elegant for storage and transmission, but it also means the human-readable text you see on screen and the actual bytes a computer stores or sends are two very different things, and bugs involving encoding mismatches, mangled text ("mojibake"), or API payloads that don't match expectations usually trace back to exactly this gap. Being able to see the literal byte sequence behind a piece of text — and, just as usefully, to go the other way and decode a raw byte sequence back into readable text — is a genuinely practical debugging skill for anyone working with files, APIs, or databases that touch non-English text. This tool converts text into its raw UTF-8 byte sequence (shown in hexadecimal), or decodes a UTF-8 hex byte sequence back into readable text, in either direction.
How it works
For encoding, each character in your input is converted to its UTF-8 byte representation: characters in the basic ASCII range become a single byte, while characters outside that range are encoded as a sequence of 2 to 4 bytes following the UTF-8 standard's specific bit-pattern rules, and the resulting bytes are displayed as hexadecimal pairs (like C3 A9). For decoding, the process runs in reverse — hex byte pairs are parsed and reassembled according to those same UTF-8 rules to reconstruct the original characters, correctly handling multi-byte sequences rather than treating each byte as its own character.
- Enter mode.
- Enter text or hex bytes.
- Click Calculate to see your results.
Examples
Encoding an accented character
The letter "é" encodes to the 2-byte UTF-8 sequence 0xC3 0xA9, since characters beyond basic ASCII need more than 1 byte in UTF-8.
Encoding a plain ASCII word
The word "Hi" encodes to just two single bytes, 0x48 0x69, since both "H" and "i" fall within the original 128-character ASCII range that UTF-8 represents in a single byte each.
Decoding a byte sequence back to text
Decoding the hex bytes E2 9C93 returns the checkmark symbol ✓ — a 3-byte UTF-8 sequence, illustrating how symbols and emoji typically need more bytes than accented Latin letters.
Who should use it
- Debugging a text encoding mismatch in a file or API response.
- Learning how UTF-8 represents non-ASCII characters.
- Verifying the exact byte size of a string containing international characters or emoji.
Industry applications
- Software development
- Web development/internationalization
Advantages
- Shows the exact byte-level representation used by the modern web.
- Works both directions (encode and decode).
- Helps pinpoint the exact source of an encoding mismatch.
Limitations
- Requires some familiarity with hex byte notation to read the output meaningfully.
Common mistakes to avoid
- Confusing UTF-8 byte encoding with Base64 text encoding — they're different layers of the encoding stack and solve different problems.
- Assuming every character takes exactly 1 byte, which only holds for the original ASCII range — accented letters, symbols, and emoji all take more.
- Treating each byte in a multi-byte sequence as its own separate character instead of decoding the full sequence together.
Best practices
- Use this to debug encoding-related bugs where a character isn't displaying or comparing as expected.
- When debugging mojibake, compare the actual byte sequence against what you'd expect for the correct encoding to pinpoint where the mismatch happened.
- Remember that byte count, not character count, is what matters for storage limits and network payload size when working with non-ASCII text.
Tips
- Pair with the Unicode Character Detector if you also want each character's codepoint, not just its raw bytes.
- When debugging an API payload, check whether it's being interpreted with the correct declared encoding before assuming the data itself is wrong.