Calcoid

Binary to Text Converter

Convert binary bit strings to ASCII or Unicode text and back. Supports 7-bit ASCII, 8-bit Latin-1, and 16-bit UTF-16, with space, comma, or no separator between groups. Round-trips cleanly.

Convert binary to text (or back)

When decoding, this tool also accepts the other separator styles automatically. The setting only controls the output format in the text-to-binary direction.

Only 0, 1, spaces, and commas are accepted. Up to 100,000 characters. Each binary group must match the chosen encoding width (7, 8, or 16 bits).

Decoded text

Hello

Characters

5

Bytes (in encoding)

5

ASCII only

Yes

Binary view (echo)

01001000 01100101 01101100 01101100 01101111

Frequently Asked Questions about the Binary to Text Converter

How does binary actually become readable text?
Every printable character has a numeric code point under a chosen character set. ASCII gives 'A' the value 65, 'H' is 72, 'i' is 105. The converter splits the bit string into fixed-width groups, parses each group as an integer with parseInt(group, 2), then calls String.fromCharCode(value) to get the matching glyph. So 01001000 01101001 splits into 72 and 105, which renders as 'Hi'. The reverse direction does the inverse: charCodeAt(i) yields the number, toString(2).padStart(width, '0') turns it back into a fixed-width bit group.
When should I pick 7-bit, 8-bit, or 16-bit encoding?
The 7-bit option represents ASCII values from 0 to 127. The 8-bit option represents one byte with values from 0 to 255, effectively a Latin-1-style mapping in this converter; it is not standard ASCII. The 16-bit option uses JavaScript UTF-16 code units, so supplementary code points require a surrogate pair. Choose the mode used by the source data.
Why does my text-to-binary conversion fail when I include an accented letter?
ASCII 7-bit caps at code point 127. The letter 'é' (e with acute accent) is code point 233, well above that limit, so the converter rejects the input rather than silently truncate or mojibake. Switch to ASCII 8-bit (which extends to 255 and covers Latin-1, including most Western European letters) or UTF-16 (which covers all BMP Unicode) and the same input encodes cleanly. The isAsciiOnly flag on every result tells you at a glance whether your text would survive a 7-bit channel.
Why does the binary length not match the text length?
Binary groups are always padded to the full encoding width: 'A' in ASCII 8-bit is 01000001 (8 bits, not 7), and in UTF-16 it is 0000000001000001 (16 bits). The padding is required so a decoder can slice a separator-free stream back into fixed-width chunks without ambiguity. So a 5-character ASCII 8-bit string takes 40 bits (5 bytes) plus 4 separator characters when space- or comma-separated, while the same 5 characters in UTF-16 take 80 bits (10 bytes).
What separator should I use between binary groups?
For human readability, the space separator is by far the most common: '01001000 01101001'. For CSV-style storage or copying into a spreadsheet column, the comma separator works well. For storing the binary as a single continuous stream (for example in a database BLOB-like field) use no separator at all; the decoder will slice it back into fixed-width chunks using the chosen encoding width. The binary-to-text direction accepts any mix of spaces and commas regardless of the dropdown setting, so you only need to pick the right separator for the output you want.

Related Calculators

More calculators in "Tech"

See all 98 calculators in "Tech"