Skip to content
ZeroServer.tools

Binary to Text

Decode 8-bit binary back into readable text.

Binary Length: 0Output Length: 0
Text Output

Decoding Binary to Plain Text

Binary-encoded text is a sequence of 8-bit groups (bytes), each representing one UTF-8 byte. This tool splits your input on any separator — spaces, commas, newlines or dashes — or into 8-bit chunks if there are none, tolerates 0bmarkers, converts each group back to a byte, and decodes the whole stream as UTF-8 in one pass, which is what lets multi-byte characters and emoji survive. Groups must contain only 0and1; anything else is reported by name rather than skipped. All decoding happens locally in your browser.

Built and maintained by Meet Shah · Last updated

What this tool is used for

  • Decoding a binary string from a puzzle or a challenge back into text.
  • Reading a bit sequence someone transcribed by hand.
  • Checking that a binary encoding round-trips correctly.
  • Recovering text from a system that logged bits rather than bytes.
  • Verifying which bytes a string occupies by decoding them back.

Frequently Asked Questions

Which separators can I paste?
Spaces, tabs, newlines, commas, semicolons, pipes, slashes and dashes all work, and 0b prefixes are stripped. Input with no separators at all is cut into 8-bit groups, so 0100100001101001 decodes to "Hi" unaided.
Do the groups have to be exactly 8 bits?
No — leading zeros are optional, so 7-bit ASCII such as 1001000 1101001 also decodes to "Hi". What is rejected is a group longer than 8 digits, and an unseparated run whose length is not a multiple of 8, because nothing can say where the bytes begin.
Why does it name an invalid group instead of ignoring it?
Because filtering is silent data loss. An earlier version dropped every character that was not a 0 or 1, so "01001000 999999" decoded cleanly to "H" and the nonsense simply vanished. Reporting the bad group is what makes a typo visible.
Does it handle accents and emoji?
Yes — it decodes UTF-8 bytes, not characters. "é" is two bytes (11000011 10101001) and an emoji is four, and the whole stream is reassembled before being decoded in a single pass, which is the only way a multi-byte character survives.
Why is there a � in the output while I type?
An incomplete multi-byte sequence decodes to U+FFFD, the replacement character. That is deliberate: a half-typed character shows a placeholder rather than blanking the whole output, and it resolves itself as soon as the remaining bytes arrive.
Does bit order within a byte matter?
Yes — this reads most-significant-bit first, the near-universal convention. A stream written least-significant-bit first decodes to entirely different characters, which is why output that looks like noise is often a bit-order mismatch rather than corruption.

Common errors and gotchas

  • Decoding a sequence transcribed by hand, where a single miscopied bit changes the letter silently.
  • Losing a leading zero in a byte, which is the same error seen a different way.
  • Decoding bits that were never text, which produces control characters rather than an error.
  • Feeding in a bit count that is not a multiple of eight, which cannot form whole bytes.
  • Pasting input a terminal wrapped, which inserts real newlines inside a byte.

Related Text Tools tools

Private & free — this tool runs entirely in your browser.