Binary to Text

Decode binary (8-bit byte) code back into readable text, with spaces between bytes accepted automatically. UTF-8 aware, runs in your browser.

Loading tool…

Worked examples

  • Two space-separated 8-bit bytes

    The everyday case: converting binary code (from a classroom exercise or a binary-to-text puzzle) back into readable characters.

  • A bit count that isn't a multiple of 8

    Every byte needs exactly 8 bits, so a valid binary string's length (after removing spaces) is always a multiple of 8 — this catches a truncated paste.

  • A digit other than 0 or 1

    Binary uses only two digits — a stray '2' or other character almost always means the input wasn't actually binary code.

What this tool does

This tool reverses text-to-binary conversion: it takes a string of 8-bit binary bytes and decodes them back into readable UTF-8 text, entirely in your browser. Whitespace between byte groups is stripped automatically, so both space-separated and continuous binary strings work without any manual cleanup.

When you need it

  • Solving a "binary code" puzzle, escape-room clue, or novelty message where the content was encoded as raw bits.
  • Checking the output of a text-to-binary conversion step elsewhere in your code or coursework against a known expected result.
  • Reading a byte-level dump from a debugging tool or textbook example back into plain text, to confirm you're interpreting it correctly.
  • Verifying, as a learning exercise, that hand-converting binary back to text produces the answer you expect.

How decoding works

  1. Whitespace is removed first, so spaces between 8-bit groups (the conventional display format) don't need to be stripped manually before pasting.
  2. The remaining digits are split into groups of 8, and each group is parsed as one byte — a number from 0 to 255, since 8 bits can represent exactly 256 distinct values.
  3. The bytes are decoded as UTF-8 text. If a byte sequence isn't valid UTF-8 — which happens if the binary represents something other than text — invalid sequences become the Unicode replacement character (�) rather than causing an error.
  4. Two conditions are checked explicitly and reported clearly: any character other than 0 or 1 in the cleaned input, and a total bit count that isn't a multiple of 8. Both stop decoding immediately with a specific explanation, rather than silently dropping bits or guessing at a partial byte.

Why the bit count must be a multiple of 8

Every character in the decoded output corresponds to one or more complete 8-bit bytes — there's no such thing as a partial byte in this scheme. If the total number of 0s and 1s (after removing whitespace) isn't evenly divisible by 8, at least one byte is incomplete, almost always because of a copy-paste that got cut off, a missing leading zero on the first byte, or an extra stray digit. Reporting this explicitly, rather than truncating the excess or padding the shortfall, keeps the tool honest about input that can't be decoded correctly rather than producing a plausible-looking but wrong answer.

Things to check after decoding

  • If the result contains replacement characters (�), the bits likely don't represent UTF-8 text at all — they may be a different encoding or genuinely non-text binary data.
  • Leading zeros in each byte matter: 01000001 and 1000001 are different byte counts (8 bits vs. 7), and only the full 8-bit form decodes correctly — a source that dropped leading zeros will need them restored first.
  • If decoding fails with a "not a multiple of 8" error on input you believe is correct, count the digits carefully; a single missing or extra bit anywhere in a long string is easy to miss visually.

Limits

Input is capped at 2 MB of text. To go the other direction, use the companion Text to Binary tool, which produces output in the same format this tool accepts.

Frequently asked questions

Is my binary uploaded anywhere?
No. Decoding runs entirely in your browser; nothing is sent to a server.
Do I need to remove the spaces between bytes myself?
No — any whitespace between 8-bit groups is stripped automatically before decoding.
Why do I get a 'not a multiple of 8 bits' error?
Each character is one or more full 8-bit bytes; a length that isn't divisible by 8 means a bit is missing or extra somewhere in the input.
What if the bytes don't form valid UTF-8 text?
The decoder substitutes the Unicode replacement character (�) for invalid sequences instead of failing outright, since the bits might encode binary data rather than text.