BinTextly

Binary Code Translator

Paste ones and zeros to read them as text, or type text to see the binary that encodes it — both directions run in this page, with no upload and no waiting.

Conversion direction

0 of 100,000 characters

Paste binary code or type text. The result appears here as you type.

How to Use the Binary Code Translator

The binary code translator runs in both directions, so the first decision is which way you are heading: binary to text, or text to binary.

  1. Pick a direction. The two tabs at the top of the tool switch between Binary → Text and Text → Binary, and the labels on the input and output boxes change with them.
  2. Add your input. Paste from a log line, a memory dump, a chat message, or type straight into the box. On the binary side, spaces, commas, tabs and line breaks are treated as separators, and a 0b prefix in front of each group is stripped before anything is decoded.
  3. Choose the encoding. UTF-8 is the default and fits most text. ASCII, UTF-16 and GBK are there for older data and for strict checks.
  4. Use the result. The output updates about 150 ms after you stop typing. Copy it, clear the form, or press Swap to push the result through the opposite direction and confirm it survives the round trip.

The Convert button exists for the cases where you want an explicit action: a screen-reader announcement, a screenshot, or a paste you want to inspect before committing. Auto-conversion and the button call the same function, so the output is identical either way — the button simply skips the debounce.

Text to Binary and Back

A binary code translator is only as good as its round trip: whatever you decode should encode back to the same bytes, and whatever you encode should decode back to the same characters.

That symmetry depends on the encoding setting, not on the tool. Encode the word café as UTF-8 and you get seven bytes, because é takes two. Encode it as ASCII and the fourth character is rejected, since é sits at 233 and ASCII stops at 127. The same string in UTF-16 doubles every character to two bytes, which is why UTF-16 output looks twice as long as the text you typed. GBK lands in between: one byte for Latin letters, two for most Chinese characters.

The Swap button makes that symmetry visible. Decode a binary string, press Swap, and the decoded text becomes the input for the encode direction, producing the original bits whenever the encoding matches. When it doesn't match, the difference is informative rather than broken: a string encoded as UTF-16 and decoded as UTF-8 comes back with a null character between every letter, which tells you the source was almost certainly a Windows tool.

Invalid input is reported, never silently dropped. If a character other than 0 or 1 appears where a bit should be, the status line names its position in your original paste, quotes the character, and shows the surrounding text so you can find it. Text that cannot be represented in the selected encoding gets the same treatment, with the character number and the offending symbol. Nothing is truncated and nothing is guessed.

Binary Code Formats Explained

Binary code arrives in more shapes than most people expect, and a binary code translator that accepts only one of them forces you to reformat by hand before you can do anything useful.

The usual form is eight bits per character with spaces between groups: 01001000 01101001. The spaces carry no data. They exist so a human can count the boundaries without losing their place. Some tools print a 0b prefix, a convention borrowed from Python, C++14 and Rust, where 0b01001000 is a single binary literal. Others print a continuous stream with no separators at all, which is what you get from a memory viewer or a network capture. This page accepts all three and also tolerates commas, tabs and line breaks, because that is what binary looks like when it is pasted out of a spreadsheet.

Hex is the other shorthand you will meet. Four bits map to one hex digit, so a byte becomes two characters: 01001000 is 48, and 01101001 is 69. Hex is shorter and easier to scan in a column, but it hides the bit pattern, which is why tutorials still show binary when the point is to explain how a byte is built.

How a byte becomes a letter

A byte holds a number from 0 to 255. ASCII assigns the first 128 values to letters, digits, punctuation and control codes, so a byte can become a character through a single lookup. Take the word Hello:

01001000  =   72  =  H
01100101  =  101  =  e
01101100  =  108  =  l
01101100  =  108  =  l
01101111  =  111  =  o

Read the first group left to right and the weights are 128, 64, 32, 16, 8, 4, 2, 1. Only the 64 and the 8 are set, so the value is 72, and 72 is H. The same method gives 01101001 = 105 = i, which is why 01001000 01101001 reads as Hi — a two-character check worth running against any decoder you have not used before.

UTF-8 keeps those 128 values identical and uses two to four bytes above them, so an English string encodes to exactly the same bits in both encodings. That compatibility is why UTF-8 took over, and why a UTF-8 decoder is a reasonable default when you have no idea where a binary string came from. Strip away the notation and a binary code translator is a byte splitter plus a lookup table; the rest is deciding which table the bytes were written with.

ASCII and UTF-8 reference table

The table below lists every printable ASCII character with its 8-bit binary, decimal and hex value. UTF-8 leaves the range 0–127 untouched, so these are also the UTF-8 bytes for the same characters.

95 characters

ASCII and UTF-8 byte values. Click Copy to put a single byte on the clipboard.
CharBinaryDecimalHexCopy
space001000003220
!001000013321
"001000103422
#001000113523
$001001003624
%001001013725
&001001103826
'001001113927
(001010004028
)001010014129
*00101010422A
+00101011432B
,00101100442C
-00101101452D
.00101110462E
/00101111472F
0001100004830
1001100014931
2001100105032
3001100115133
4001101005234
5001101015335
6001101105436
7001101115537
8001110005638
9001110015739
:00111010583A
;00111011593B
<00111100603C
=00111101613D
>00111110623E
?00111111633F
@010000006440
A010000016541
B010000106642
C010000116743
D010001006844
E010001016945
F010001107046
G010001117147
H010010007248
I010010017349
J01001010744A
K01001011754B
L01001100764C
M01001101774D
N01001110784E
O01001111794F
P010100008050
Q010100018151
R010100108252
S010100118353
T010101008454
U010101018555
V010101108656
W010101118757
X010110008858
Y010110018959
Z01011010905A
[01011011915B
\01011100925C
]01011101935D
^01011110945E
_01011111955F
`011000009660
a011000019761
b011000109862
c011000119963
d0110010010064
e0110010110165
f0110011010266
g0110011110367
h0110100010468
i0110100110569
j011010101066A
k011010111076B
l011011001086C
m011011011096D
n011011101106E
o011011111116F
p0111000011270
q0111000111371
r0111001011472
s0111001111573
t0111010011674
u0111010111775
v0111011011876
w0111011111977
x0111100012078
y0111100112179
z011110101227A
{011110111237B
|011111001247C
}011111011257D
~011111101267E

Control characters such as tab (00001001) and line feed (00001010) are left out because they do not render, but they decode normally if they appear in your input.

If you only need one direction, a dedicated page is usually faster than switching modes here.

Frequently asked questions

How do I read binary code by hand?

Split the string into groups of eight bits, starting from the left. Each group is one byte, and its decimal value points to a character: 01001000 is 64 + 8, so 72, which is H in ASCII. The spaces between groups are only there to help you see the boundaries.

What happens to spaces, commas and line breaks in the input?

They are ignored. Spaces, tabs, commas and line breaks are treated as separators and removed before decoding, so pasting a column of bytes from a debugger works the same as pasting one long string.

Can I convert binary code without spaces?

Yes. The input is read as a continuous bit stream and cut into bytes every eight bits, so 0100100001101001 decodes to Hi. If the total is not a multiple of eight, the leftover bits at the end are ignored and the status line tells you how many were dropped.

Which encoding should I pick if I do not know the source?

Start with UTF-8, which covers the large majority of text produced in the last fifteen years. If the result shows question marks or empty boxes, switch to ASCII for strict 7-bit data, GBK for Chinese text from older Windows software, or UTF-16 for dumps from legacy Windows tools. A wrong setting does not corrupt the data itself; it reads correct bytes through the wrong table, which is why the output degrades into question marks and unrelated symbols.

Why does the decoded text show question marks or boxes?

The bytes were almost certainly produced with a different encoding. Decoding GBK bytes as UTF-8 yields the replacement character, and decoding UTF-16 as UTF-8 yields a string of unrelated symbols. Change the dropdown and convert again — the binary itself has not changed.

Is there a limit to how much I can paste?

The input accepts up to 100,000 characters, roughly 12,500 bytes of binary. Anything longer gets a message instead of a frozen tab, because the conversion runs on your device in a single pass.

Does this binary code translator upload my data?

No. The page is one static HTML file with inline JavaScript, and the conversion happens in your browser. There is no upload step, no account and no server-side processing, so pasting proprietary strings is no different from typing them into a text editor.