Convert text to binary and back
Turn any text into its binary representation, one eight-bit group per UTF-8 byte, or decode a string of ones and zeros back into readable characters. Emoji, accents and non-Latin scripts are handled correctly because the conversion goes through UTF-8 rather than assuming one byte per character.
How to use the Text to Binary Converter
- Choose Text → binary or Binary → text.
- Paste your text, or a string of 0s and 1s in any spacing.
- Pick a separator; decoding ignores spacing entirely.
- Copy the result or download it.
How a character becomes bits
Text is converted to UTF-8 bytes first, then each byte is written as eight binary digits with leading zeros kept. The capital letter A is code point 65, which is 01000001. A space is 32, or 00100000. Because ASCII characters occupy a single byte, English text produces exactly eight bits per character — which is where the familiar "8 bits to a character" rule of thumb comes from, and why it stops being true the moment you leave ASCII.
| Character | Code point | UTF-8 bytes | Binary |
|---|---|---|---|
A | 65 | 1 | 01000001 |
a | 97 | 1 | 01100001 |
é | 233 | 2 | 11000011 10101001 |
€ | 8364 | 3 | 11100010 10000010 10101100 |
😀 | 128512 | 4 | four bytes |
Why UTF-8 and not one byte per character
UTF-8 encodes the first 128 code points in one byte, which makes it backwards-compatible with ASCII, and uses two to four bytes for everything else. Continuation bytes always start 10, and the leading byte announces the length with 110, 1110 or 11110 — a self-synchronising design that lets a decoder recover from the middle of a stream. A converter that assumed one byte per character would simply lose every accented letter. The summary under the output tells you how many characters became how many bytes, which makes the difference visible.
Decoding
Anything that is not a 0 or a 1 is ignored when decoding, so you can paste bits separated by spaces, commas, hyphens or line breaks, or as one unbroken string. The total must be a multiple of eight; if it is not, the tool says how many digits are left over, which is nearly always a typo or a truncated copy. Byte sequences that are not valid UTF-8 are decoded as best they can be, with the replacement character shown where a byte made no sense.
Grouping
One byte per group with a space between them is the readable default. Setting a larger group size joins several bytes before each separator, which is handy when comparing against a memory dump or a protocol specification that works in 16- or 32-bit words. Choosing no separator produces the unbroken bit string some puzzles and exercises expect.
What this is good for
Teaching how character encoding works, solving puzzle and CTF challenges, checking what a protocol expects on the wire, and sanity-checking an encoding bug where text has been mangled somewhere between a database and a page. It is not a compression or encryption tool: binary is eight times longer than the bytes it describes and trivially readable by anyone.
Frequently asked questions
Does it handle emoji and accented letters?
Yes. Text is converted through UTF-8, so é takes two bytes and an emoji four. The byte count is shown under the output.
What spacing does the decoder accept?
Any. Spaces, commas, hyphens and line breaks are ignored — only 0s and 1s are read. The total must be a multiple of eight.
Why is my binary not a multiple of 8?
A digit was lost or added somewhere in the copy. The error message tells you how many are left over so you can find the truncated group.
Is binary encoding a form of encryption?
No. It is a different way of writing the same bytes, eight times longer and readable by anyone. Use real encryption for secrets.
Privacy
This tool runs entirely inside your browser using WebAssembly and the Canvas/File APIs. Your files are never uploaded to ToolFlint or any third party; you can verify this in your browser's network tab or by switching to airplane mode after the page loads. Read how we process files.
Last updated 2026-09-23.