Computers store everything as numbers, and the numbers are stored as bits: ones and zeros. Text is no exception. Each character is assigned a number, and that number is written in binary. The letter “A” is 65, which in binary is 01000001. This tool shows you the binary for any text, and turns binary back into text.
Encoding
Type or paste text, choose Encode, and each byte is written as a group of eight bits, separated by spaces. “Hi!” becomes:
01001000 01101001 00100001
That is H (72), i (105) and ! (33). For ordinary English text, that is one group per character. For anything else the picture changes, because the tool uses UTF-8, the encoding nearly all of the web uses. In UTF-8, letters outside plain English take two, three or four bytes: “é” is two groups, a Chinese character three, an emoji four. So a short message in another script can produce more groups than characters, and that is correct.
Decoding
Choose Decode and paste binary with spaces between the bytes. The tool reads each group as a number, joins the bytes and reads them as UTF-8 text.
The spaces matter. If you paste a continuous string of ones and zeros with no gaps, the tool cannot tell where one byte ends and the next starts, and will treat the whole thing as one huge number, giving nonsense. If your binary has no spaces, split it into groups of eight first. In find and replace, tick the regular expression box, search for (d{8}) and replace with $1 followed by a space, and every eight digits get a gap.
Groups with more than eight digits, or characters other than 0 and 1, will not decode properly. A message that decodes to question marks or odd symbols may have been encoded in another scheme, such as 7-bit ASCII or UTF-16, in which case the bytes will not line up.
A little context
Binary text is a good way to see how the numbers underneath work. Capital letters start at 65 and lowercase at 97, a difference of 32, which is one bit: that is why upper and lowercase letters differ in a single binary digit. The digit characters are 48 to 57, so “0” is not the number zero but character 48, 00110000.
To see characters as code point numbers rather than bytes, use the text to Unicode converter. The same bytes in hexadecimal are on the hex translator, and Base64 is the compact, text-safe way of writing them. If you enjoy old encodings, Morse code is a fun comparison.