Skip to content

Convert binary to text

Decode binary back into readable text. Any spacing is accepted, UTF-8 and ASCII are both supported, and the errors tell you what is wrong.

  • Runs in your browser
  • Nothing you enter is sent
  • Free, no account
Binary → Text
Translation happens as you type. Swap sends the result back into the input and reverses the direction.

The translation appears here.

Options

Always eight bits per byte. Accented letters, CJK and emoji take two to four bytes each — the same bits a file on disk would hold.

Applies to generated output. Input is parsed with any spacing at all — every non-binary character is ignored.

Load from a file
Drop a .txt file to translate its contents. Read locally — nothing is uploaded.
Drop a text file hereFirst 64 KB are loaded.TXT, LOG, CSV, MD · up to 16 MB each

Decoding binary

Paste the ones and zeros. Every other character — spaces, commas, newlines, stray letters — is discarded before decoding, so it does not matter how the source was formatted. The remaining bits are then split into groups of eight (or seven in ASCII mode) and each group is read as a character code.

Do it by hand

Take 01010111:

Place values: 128  64  32  16   8   4   2   1
Bits:           0   1   0   1   0   1   1   1
Contributing:      64      16       4   2   1
Total: 64 + 16 + 4 + 2 + 1 = 87  →  "W"

A shortcut for the common case: if the byte starts 010 it is an uppercase letter, and if it starts 011 it is lowercase or a digit. The remaining five bits give the position in the alphabet.

When the bit count does not divide evenly

A valid binary message has a total bit count that is a multiple of the group size. If you get a remainder, one of these is true:

  • A digit was lost when copying — check the very start and end of the paste.
  • The source used 7-bit groups and you are decoding as 8, or the reverse.
  • Something in the input was already a 0 or 1 and got absorbed as data — a bullet point, a list number, a line label.
  • The message was never binary text in the first place.

The error message names the exact number of leftover bits, which usually points straight at the cause.

UTF-8 or single-byte?

If the decoded text is full of Ã, â and €, you are reading UTF-8 bytes one at a time — switch the character set to UTF-8 and the accented characters will resolve. If instead you get replacement diamonds in UTF-8 mode, the source was probably 7-bit ASCII or Latin-1, so switch the other way.

Common patterns you can recognise

ByteCharacterWhy it matters
00100000spaceThe most common byte in English text
00001010line feedEnd of a line on Unix
00001101carriage returnPaired with the above on Windows
00110000–00111001digits 0–9All start 0011
00000000nullPadding, or a string terminator

Where binary messages come from

Puzzle hunts and CTF challenges, escape rooms, geocaching clues, homework, and the occasional genuinely technical case — a logic-analyser capture, a serial trace, or an error message that printed a byte in binary. The tool does not care which; it just reads the bits.

Questions

Does the spacing in my binary matter?

No. Every character that is not a 0 or a 1 is discarded before decoding, so spaced, unspaced, comma-separated and line-broken input all behave identically.

It says my bit count is not a whole number of groups.

The total number of binary digits has to divide by 8 (or 7 in ASCII mode). A leftover of one to seven bits means a digit was lost in copying, or the source used a different group size.

The output is question marks and boxes.

The bytes are valid but do not form valid UTF-8 — usually because the original was 7-bit ASCII or Latin-1. Switch the character set and it should resolve.

Can it decode binary that is not text at all?

It will try, and you will get control characters. If the bits came from a file rather than a message, the hex pages are a far more useful way to look at them.