Turn text into 8-bit binary, or binary back into text. Nothing leaves your browser.
The tool uses UTF-8, the encoding of almost every web page. Each character is turned into one to four bytes, and each byte is written as eight digits of 0 and 1. The letter A is one byte, 01000001. The letter é is two bytes, 11000011 10101001. The euro sign is three bytes and an emoji such as the grinning face is four. Plain English text is therefore eight digits per letter, while accented letters, Chinese text and emoji take more. Spaces and line breaks are characters too, so a space is 00100000 and a Windows line break is two bytes, 00001101 00001010, exactly as typed. The encoder is written in plain JavaScript and does not depend on the browser. A broken half of an emoji pair, which has no valid meaning on its own, is written as the replacement character, three bytes long.
When writing binary you choose what goes between bytes: a space, nothing, or a new line. A space is easiest to read and nothing is the most compact. When reading binary the tool does not care how the digits are grouped. It accepts 0 and 1 with any spaces, tabs or line breaks between them, so a block pasted from a document with odd wrapping still works. Any other character is refused. Bits are grouped in eights from the start, so the count of 0 and 1 digits must be a multiple of 8. A message with 15 digits is refused, and the error tells you how many digits it found. A prefix such as 0b is not removed and is refused, so leave it out.
Binary that is cut off or mistyped does not always make text. After the digits are grouped into bytes the tool checks them as strict UTF-8. A byte that cannot start a character, a character that is missing its last bytes, a longer form than needed, a surrogate and a value above U+10FFFF are all refused. The error names the character position or byte position, counted from 1, so you can find the fault. It never prints your text back. Nothing partial is shown, because half a decoded message can look right and still be wrong. If you only have 7-bit ASCII with a leading zero dropped, add the zero so every byte has eight digits.
Up to 200,000 characters are accepted. Writing binary multiplies the size by about nine for plain letters, so very large input that would pass 5,000,000 characters of output shows a message asking you to use less text. Binary is not encryption. Anyone can read it back with this tool. This page converts text and bytes only. Converting a number such as 255 into base 2 is a different job, done with the number base converter, and Base64 or URL encoding are handled by the text encoder. The work runs in your browser and the text is not uploaded or saved.
Eight bits, one byte, for the basic English letters, digits and punctuation, such as 01001000 for H. Accented letters like é take 16 bits, characters such as € or 中 take 24 and emoji take 32, because the tool writes UTF-8.
Common causes are a digit count that is not a multiple of 8, a stray character other than 0, 1 or white space, or bytes that are not valid UTF-8, such as 11111111. The message gives the digit count or a position, counted from 1. Fix that spot and try again.
Yes. 0100100001101001 reads as Hi. The tool groups the digits in eights from the start, so make sure none are missing at the front. Spaces, tabs and new lines between bytes are also accepted in any mix.
For the 128 ASCII characters, yes: the byte is identical, with a leading 0. A is 01000001 in both. Beyond ASCII this tool writes UTF-8, so é is two bytes rather than a single byte in a legacy table such as Latin-1.
No. The conversion runs in your browser in this tab and no server receives your text. Your option choices are saved on this device, but the text is not.