Skip to content
AZ Tools

Text to Binary Converter

Convert text to 8-bit binary and back. UTF-8 encoded, so emoji and accented characters work, with a choice of byte separator.

Output

2 bytes

How to use

  1. Pick a direction: Text → Binary or Binary → Text.
  2. Type or paste your input. For encoding, choose how to separate the bytes.
  3. Copy the result from the output box.

About this tool

Show

Turn any text into its binary representation and back again. Each character is encoded to UTF-8 bytes, and every byte becomes eight bits — so plain ASCII like 'A' is one byte (01000001) while an emoji or accented letter spans several. Choose how to separate the bytes (a space, nothing, or a custom character) for readable output. Switch to decode mode to paste binary back and recover the original text; spaces, newlines and other non-binary characters are ignored, so messy input still works. Handy for learning how characters are stored, puzzles and CTFs, or encoding short messages. Everything runs locally in your browser.

Frequently asked questions

Why is one character sometimes more than 8 bits?

Text is encoded as UTF-8. ASCII characters are one byte (8 bits), but emoji, accented letters and many non-Latin characters use 2–4 bytes, so they become 16–32 bits.

What counts as valid binary to decode?

Any string of 0s and 1s whose total length is a multiple of 8. Spaces, line breaks and other characters are stripped first, so '01001000 01101001' and '0100100001101001' both decode the same.

Why do I get a length error?

Decoding needs whole bytes. If the number of 0s and 1s isn't a multiple of 8, a character is incomplete — check for a missing or extra bit.

Is my text uploaded?

No. Encoding and decoding happen entirely in your browser; nothing is sent to a server.

Why did my binary decode to a replacement character instead of failing?

The length check only catches a bit count that is not a multiple of 8; after that the bytes go to a lenient UTF-8 decoder, which substitutes U+FFFD (�) for anything it cannot read rather than throwing. So 11111111, which is not a legal UTF-8 byte at all, and 11110000 10011111 10011000, which is three of the four bytes of 😀, both come back as a single �. A � in the output means the bits were not valid UTF-8, not that the tool gave up.

Can I tell where each character starts just by looking at the bits?

Yes, and it is the most useful thing UTF-8 gives you. A byte beginning 0 is a one-byte ASCII character; 110 starts a two-byte sequence, 1110 a three-byte one and 11110 a four-byte one; every byte beginning 10 is a continuation of the one before it. So é is 11000011 10101001, € is 11100010 10000010 10101100 and 😀 is 11110000 10011111 10011000 10000000. Count the bytes that do not start with 10 and you have the character count without decoding anything.

Related tools