How to use it
- Type or paste text to see it as binary. Choose hexadecimal, decimal or octal instead if you need those, and a separator between bytes.
- Switch to Binary → Text to decode. Bytes can be separated by spaces, commas or new lines, or written as one unbroken run of bits (it is split every 8); 0b and 0x prefixes are accepted.
- For short text, the table shows each character, its Unicode code point and the bytes it becomes.
Why some characters take more than 8 bits
Text is turned into bytes with UTF-8, the encoding browsers use for the web (the WHATWG Encoding Standard). In UTF-8 (RFC 3629) the 128 ASCII characters (English letters, digits, basic punctuation) take one byte, so “H” is 01001000. Code points from U+0080 to U+07FF, which cover accented Latin letters, Greek, Cyrillic, Hebrew and Arabic, take two bytes: é is 11000011 10101001. Most other characters in everyday use, including Chinese, Japanese and Korean, take three, and emoji and other characters above U+FFFF take four. Some emoji are several code points joined together (a family emoji, or a hand with a skin tone), so they become even more bytes. Older “binary translators” that convert each character code straight to binary produce numbers that are not UTF-8 bytes and cannot be read back by other software.
When decoding fails
Not every list of bytes is valid UTF-8: a multi-byte character that has been cut off, or a byte that can never start a character, makes the text unreadable. The translator decodes strictly and tells you, then shows a lenient reading with replacement characters so you can see where the problem is. Groups that are not bytes (a digit 2 in binary, a value over 255) are listed rather than guessed.
What we tested
On October 15, 2026: 2,000 random strings mixing English, accented letters, Cyrillic, Chinese, Japanese, Korean and emoji (including joined sequences), converted to binary, hexadecimal, decimal and octal with each separator, matched Python’s UTF-8 bytes exactly and decoded back to the same text. Bad digits, values over 255, odd-length runs and cut-off characters were reported as errors. In Chromium, “Hi é” became 01001000 01101001 00100000 11000011 10101001 and back again, on a 390 px screen.
Sources
- IETF, RFC 3629: UTF-8, a transformation format of ISO 10646.
- WHATWG, Encoding Standard (TextEncoder and TextDecoder in browsers).
Frequently Asked Questions
Built by Derek Giordano · Part of Ultimate Design Tools