Free tool
Text to binary translator
Type text to see it as binary, or paste binary to read it as text. Each character becomes its UTF-8 bytes, 8 bits each, so "Hi" is 01001000 01101001 and emoji work too.
Free · no sign-up · runs in your browser, nothing is uploaded
01001000 01100101 01101100 01101100 01101111 00101100 00100000 01000100 01100101 01110110 01001000 01110101 01101110 01110100 00100001 00100000 01100011 01100001 01100110 11000011 10101001 00100000 11110000 10011111 10010001 10001011
Characters
22
Bytes (UTF-8)
26
Bits
208
| char | code point | UTF-8 bytes (binary) |
|---|---|---|
| H | U+0048 | 01001000 |
| e | U+0065 | 01100101 |
| l | U+006C | 01101100 |
| l | U+006C | 01101100 |
| o | U+006F | 01101111 |
| , | U+002C | 00101100 |
| space | U+0020 | 00100000 |
| D | U+0044 | 01000100 |
| e | U+0065 | 01100101 |
| v | U+0076 | 01110110 |
| H | U+0048 | 01001000 |
| u | U+0075 | 01110101 |
| n | U+006E | 01101110 |
| t | U+0074 | 01110100 |
| ! | U+0021 | 00100001 |
| space | U+0020 | 00100000 |
| c | U+0063 | 01100011 |
| a | U+0061 | 01100001 |
| f | U+0066 | 01100110 |
| é | U+00E9 | 11000011 10101001 |
| space | U+0020 | 00100000 |
| 👋 | U+1F44B | 11110000 10011111 10010001 10001011 |
How text becomes binary
Computers store numbers, not letters. A character encoding gives each character a number and says how to write it as bytes. ASCII, from the 1960s, covers 128 characters (English letters, digits, punctuation and control codes) in 7 bits, stored one per byte. A is 65, which is 01000001.
UTF-8 is the encoding the web and almost all modern software use. It keeps every ASCII character as the same single byte and uses 2 to 4 bytes for the rest of Unicode. The leading bits of the first byte say how many bytes the character has:
| Code points | Bytes | Bit pattern |
|---|---|---|
| U+0000 to U+007F | 1 | 0xxxxxxx |
| U+0080 to U+07FF | 2 | 110xxxxx 10xxxxxx |
| U+0800 to U+FFFF | 3 | 1110xxxx 10xxxxxx 10xxxxxx |
| U+10000 to U+10FFFF | 4 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
Example: why 👋 is 32 bits
The waving hand emoji is code point U+1F44B. That is above U+FFFF, so UTF-8 uses four bytes. The code point’s 21 bits are spread over the x slots of the pattern:
U+1F44B = 0 0001 1111 0100 0100 1011 (21 bits) split 3/6/6/6 000 011111 010001 001011 into the pattern 11110000 10011111 10010001 10001011 hex F0 9F 91 8B
The character-by-character table under the translator shows this split for every character you type. An é is two bytes (C3 A9); the Chinese character 中 is three (E4 B8 AD).
Reading binary back as text
- Group into bytes. Each byte is 8 bits. Spaces between bytes make it unambiguous; without them the translator cuts the bits into groups of 8 and tells you if the length is not a multiple of 8.
- 7-bit groups. Some older examples drop the leading 0 of ASCII bytes (
1001000for H). With spaces between them they still decode here. - Invalid bytes. Not every byte sequence is valid UTF-8; a lone
11111111never is. The translator shows � for it and names the byte, which usually means a missing bit or text in another encoding. - Hex dumps. Switch the byte format to Hex to decode
48 69,4869or\x48\x69.
Text to binary in code
// JavaScript (browser or Node): text → binary
[...new TextEncoder().encode('Hi')]
.map(b => b.toString(2).padStart(8, '0'))
.join(' '); // '01001000 01101001'
// binary → text
new TextDecoder().decode(
Uint8Array.from('01001000 01101001'.split(' '), b => parseInt(b, 2))); // 'Hi'
# Python
' '.join(f'{b:08b}' for b in 'Hi'.encode()) # '01001000 01101001'
bytes(int(b, 2) for b in s.split()).decode() # back to text
# Terminal
echo -n Hi | xxd -b # 00000000: 01001000 01101001 HicharCodeAt() alone is not enough for this: it returns UTF-16 code units, so an emoji comes back as two numbers above 255 instead of its four UTF-8 bytes. Use TextEncoder to get real bytes.
Letters and digits in binary
The ASCII codes of common characters, which are also their UTF-8 bytes. For the full 0-127 table with control codes, see the ASCII table; to inspect any Unicode character, the Unicode converter. To turn numbers (not text) into binary, use the binary converter.
| char | dec | binary |
|---|---|---|
| A | 65 | 01000001 |
| B | 66 | 01000010 |
| C | 67 | 01000011 |
| D | 68 | 01000100 |
| E | 69 | 01000101 |
| F | 70 | 01000110 |
| G | 71 | 01000111 |
| H | 72 | 01001000 |
| I | 73 | 01001001 |
| J | 74 | 01001010 |
| K | 75 | 01001011 |
| L | 76 | 01001100 |
| M | 77 | 01001101 |
| N | 78 | 01001110 |
| O | 79 | 01001111 |
| P | 80 | 01010000 |
| Q | 81 | 01010001 |
| R | 82 | 01010010 |
| char | dec | binary |
|---|---|---|
| S | 83 | 01010011 |
| T | 84 | 01010100 |
| U | 85 | 01010101 |
| V | 86 | 01010110 |
| W | 87 | 01010111 |
| X | 88 | 01011000 |
| Y | 89 | 01011001 |
| Z | 90 | 01011010 |
| a | 97 | 01100001 |
| b | 98 | 01100010 |
| c | 99 | 01100011 |
| d | 100 | 01100100 |
| e | 101 | 01100101 |
| f | 102 | 01100110 |
| g | 103 | 01100111 |
| h | 104 | 01101000 |
| i | 105 | 01101001 |
| j | 106 | 01101010 |
| char | dec | binary |
|---|---|---|
| k | 107 | 01101011 |
| l | 108 | 01101100 |
| m | 109 | 01101101 |
| n | 110 | 01101110 |
| o | 111 | 01101111 |
| p | 112 | 01110000 |
| q | 113 | 01110001 |
| r | 114 | 01110010 |
| s | 115 | 01110011 |
| t | 116 | 01110100 |
| u | 117 | 01110101 |
| v | 118 | 01110110 |
| w | 119 | 01110111 |
| x | 120 | 01111000 |
| y | 121 | 01111001 |
| z | 122 | 01111010 |
| 0 | 48 | 00110000 |
| 1 | 49 | 00110001 |
| char | dec | binary |
|---|---|---|
| 2 | 50 | 00110010 |
| 3 | 51 | 00110011 |
| 4 | 52 | 00110100 |
| 5 | 53 | 00110101 |
| 6 | 54 | 00110110 |
| 7 | 55 | 00110111 |
| 8 | 56 | 00111000 |
| 9 | 57 | 00111001 |
| space | 32 | 00100000 |
| ! | 33 | 00100001 |
| . | 46 | 00101110 |
| , | 44 | 00101100 |
| ? | 63 | 00111111 |
| @ | 64 | 01000000 |
More free developer tools
FAQ
How do you convert text to binary?+
Each character is turned into bytes with a character encoding (UTF-8 on the web), and each byte is written as 8 bits. "H" is byte 72, which is 01001000. Type in the box above and the translator does this for every character as you type.
How do you say "I love you" in binary?+
01001001 00100000 01101100 01101111 01110110 01100101 00100000 01111001 01101111 01110101. That is ten bytes: I, space, l, o, v, e, space, y, o, u, each as its 8-bit ASCII code.
What is "hello" in binary?+
01101000 01100101 01101100 01101100 01101111. Lowercase letters start at 01100001 (a = 97); uppercase letters at 01000001 (A = 65), so the two cases differ only in one bit (value 32).
How many bits is one character?+
In ASCII and for plain English text in UTF-8, 8 bits (one byte). Accented letters like é take 16 bits in UTF-8, most Asian scripts take 24, and emoji take 32. The stats under the translator count characters, bytes and bits.
How do I translate binary back to text?+
Paste the binary in the box; the translator notices it is only 0s and 1s and decodes it. Bytes can be separated by spaces, commas or new lines, carry 0b prefixes, or have no separators at all if every byte has 8 bits. Invalid UTF-8 is pointed out by byte number.
What is the difference between ASCII and UTF-8 binary?+
For the 128 ASCII characters (English letters, digits, basic punctuation) there is none: UTF-8 uses the same single byte. UTF-8 then adds 2, 3 and 4-byte sequences for every other Unicode character, which ASCII cannot represent at all.
Is binary code still used?+
Everything a computer stores or sends is binary. People rarely write it by hand, though: hex is the usual way to show bytes because it is shorter, and this translator can output hex, decimal or octal bytes as well.
Sources: RFC 3629 (UTF-8) · RFC 20 (ASCII) · Unicode Standard, ch. 3 (encoding forms) · MDN: TextEncoder · MDN: TextDecoder · Python: str.encode() · xxd(1) man page. Checked 2026-10-30.