Convert text to 8-bit binary or decode binary back to text. UTF-8 aware, handles spaces and punctuation.
Text • binary code
Encoding and decoding share the page, so any result can be pasted straight back to confirm it round-trips to the text you started with — the quickest check that nothing was mangled.
Results are recalculated on every keystroke, with no submit step and no page reload, so a value can be adjusted until the answer looks right rather than guessed once.
Everything runs in your browser — no account, no uploads, nothing leaves your device.
Binary code represents every character as a string of 0s and 1s. Computers store text as bytes, and each byte is eight bits; this translator shows the exact binary for any text and decodes binary back into readable characters, using UTF-8 so accented letters and emoji work too.
It is popular with students learning how computers store data, hobbyists making binary puzzles, bracelets or tattoos, and developers debugging encodings. Type text to see its binary, or paste 0s and 1s to decode — everything runs in your browser.
Converting text to binary is a two-stage process: map each character to its numeric code, then express that number in base 2. For ASCII the result is conventionally padded to eight bits per character, giving a byte each, which makes the output easy to split back apart. Beyond ASCII the picture changes: UTF-8 uses one to four bytes per character depending on the codepoint, so a fixed eight-bit grouping no longer aligns with character boundaries and naive splitting corrupts the text.
Character → code point → binary, padded to 8 bitsReverse: split into 8-bit groups, convert each to decimal, look up the characterBinary to decimal = Σ (bit × 2^position)UTF-8 uses 1–4 bytes per character — 8-bit splitting only works for ASCIIwhere:
Assumptions: Eight-bit grouping is valid only for ASCII text. A UTF-8 string containing accented letters or emoji uses multi-byte sequences that must be decoded as UTF-8, not split blindly into bytes.
Encode two characters, then decode the result to verify.
Result"Hi" = 01001000 01101001
Padding to eight bits is what makes decoding unambiguous — without it, 1001000 and 1101001 run together with no way to find the boundary. The same principle is why UTF-8 encodes length information into the leading bits of multi-byte sequences.
A byte holds eight bits and therefore 256 distinct values, which is comfortably more than the 128 ASCII needs. That surplus is what every legacy code page fought over, and it is why a document written on one machine used to arrive on another with the accented characters replaced by nonsense — the bytes survived the trip intact, and the table used to interpret them did not.
UTF-8 resolved that by making the encoding variable in width. A plain English character still occupies one byte, but a euro sign takes three (E2 82 AC) and most emoji take four. So the binary produced from a line of text is only eight bits per character while the text stays within ASCII; add one accented letter and the bit count no longer divides evenly by the number of characters you can see. Anyone checking their work by counting groups of eight should expect that mismatch rather than treat it as an error.
This is also why byte length and character length are different questions, and why a database column sized in bytes will reject a name that looks well within its limit. The binary on this page is the encoded form — what actually travels down a wire or lands on a disk — and it is one interpretation of the text rather than the text itself.