Decoding binary messages
Binary text is a sequence of bytes written as eight bits each. To read it, split the bits into groups of eight, turn each group into a number from 0 to 255, and look the number up in the character encoding. For plain English text that encoding is ASCII, so 01000001 (65) is A and 00100000 (32) is a space. For everything else the modern standard is UTF-8, where accented letters and emoji span several bytes.
This translator handles both, because UTF-8 is identical to ASCII for the first 128 values. It ignores spaces and line breaks, so you can paste bits in any layout.
Worked example
01001000 01100101 01101100 01101100 01101111 → 72, 101, 108, 108, 111 → Hello. If you see an error about a multiple of 8, a bit is missing or extra; if you see "not valid UTF-8", the bits were probably produced with a different encoding or are not text at all.
How this works
The page removes spaces, commas and line breaks, checks that only 0 and 1 remain and that their count is a multiple of eight, then converts each group of eight bits into a byte. The bytes are decoded as UTF-8 in strict mode, so a truncated or invalid sequence is reported rather than silently replaced. Switch to Encode to turn text into binary. Everything runs in this tab.
Frequently asked
Why must the number of bits be a multiple of 8?
Each character is stored as whole bytes of 8 bits. A missing or extra bit shifts every following character.
My binary uses 7 bits per letter. What now?
Add a leading 0 to each group so it has 8 bits; ASCII values fit in 7 bits but are stored in bytes.
What encoding is used?
UTF-8, which is the same as ASCII for English letters, digits and punctuation.
Is my input sent anywhere?
No. Everything happens in your browser.
Sources
- The Unicode Standard, latest version
- RFC 20 — ASCII format for network interchange (ANSI X3.4-1968)
- Wikipedia — UTF-8
Reviewed Oct 17, 2026 · test vectors fixtures/dev/binary-to-text/