On this page

Short answer: ASCII is a 7-bit encoding with 128 characters — enough for English letters, digits and basic punctuation, nothing more. UTF-8 is a variable-length encoding using 1 to 4 bytes per character that covers all of Unicode — every language, every emoji. The part most comparisons miss: UTF-8's first 128 characters are byte-identical to ASCII by design, so any English text has exactly the same bytes in both encodings. ASCII's limitation is not that it is old — it is that it physically cannot hold the rest of the world's characters.

Comparison of A, é, 你 and a wave emoji in ASCII versus UTF-8: A is byte 01000001 in both encodings, while é, 你 and the emoji exist only in UTF-8 as two, three and four bytes

The Short Answer

ASCII, standardized as RFC 20 in 1969, assigns the numbers 0–127 to characters: 65 is A, 97 is a, 32 is space. Seven bits per character, 128 characters total — the English alphabet twice (upper and lower), digits, punctuation and 33 invisible control codes. UTF-8, defined in RFC 3629, is an encoding of Unicode: a variable-length scheme where a character takes 1, 2, 3 or 4 bytes depending on where it lives in the Unicode catalog. Our what is UTF-8 article explains that variable-length mechanism in detail; this article is about the comparison.

The Comparison Table

ASCIIUTF-8
Standardized1960s (RFC 20, 1969)1992–93 (RFC 3629)
Bits/bytes per character7 bits (fixed)1–4 bytes (variable)
Characters covered128All of Unicode (150,000+)
English text1 byte per character1 byte per character — identical bytes
Accented letters (é)Not possible2 bytes (C3 A9)
Chinese (你)Not possible3 bytes (E4 BD A0)
Emoji (👋)Not possible4 bytes (F0 9F 91 8B)
Role todayTeaching, legacy protocolsThe default for the web and modern text

The Compatibility Trick

UTF-8's designers made a decision that shaped the internet: the first 128 code points map to the exact same single bytes as ASCII. A is 01000001 in ASCII and 01000001 in UTF-8 — bit for bit. That means every plain-English file ever written in ASCII is already valid UTF-8 with zero conversion, and a UTF-8 system reads the entire ASCII back-catalog flawlessly. Type “Hello” into our ASCII to binary converter and then into the text to binary converter in UTF-8 mode: the bytes come out identical, because they are.

Same Characters, Both Encodings

The diagram above dissects four characters byte by byte. “A” costs one byte in both encodings — the same byte. “é” (U+00E9, 233) overflows ASCII's range entirely; UTF-8 spends two bytes on it (C3 A9). “你” needs three (E4 BD A0), and the emoji 👋 four (F0 9F 91 8B). ASCII cannot even start those characters — there is no “ASCII version” of them at all, which is why ASCII text that acquires an accented name or a Chinese word must switch encodings, not just fonts.

When to Use Which

Choose ASCII when you are teaching how bytes map to letters (128 entries fit on one page — our binary alphabet builds on it), working with legacy protocols and hardware that assume 7-bit text, or validating that a string is pure English. Choose UTF-8 for everything real: files, web pages, APIs, databases, names of actual humans. It costs nothing extra for English and is the only one of the two that can store the rest of the world.

One honest limit on the UTF-8 side: variable length creates a failure mode ASCII never had. Truncate a file mid-character — say the first two bytes of 你 (E4 BD) without the third — and the result is an invalid sequence: strict decoders reject it, lenient ones print a replacement character (�), and a reader using the wrong encoding turns it into mojibake. ASCII strings can be cut anywhere safely; UTF-8 strings can only be cut on character boundaries.

See both encodings on your own text

Our ASCII to binary converter shows every ASCII character's byte — and refuses é, 你 and 👋 with an exact error. Switch the homepage tool to UTF-8 to watch the same characters become 2–4 bytes.

Open the ASCII to binary converter

Common Mistakes

  • Mistake: “UTF-8 uses two bytes per character.” Correction: it is variable — 1 to 4. English text in UTF-8 is one byte per character, exactly like ASCII; only characters beyond the first 128 rent extra bytes.
  • Mistake: “ASCII and UTF-8 encode English differently.” Correction: the first 128 characters are byte-identical. If two English files differ, the encoding is not the cause — look at line endings or invisible characters instead.
  • Mistake: “Unicode and UTF-8 are the same thing.” Correction: Unicode is the character catalog (the numbered list of every character); UTF-8 is one way to write that catalog as bytes. UTF-16 and UTF-32 encode the same catalog with different byte layouts.

Try It in the Converter

The CTA above opens the ASCII to binary converter — paste é there and it reports the exact character that is out of range and why. Then open the text to binary converter, which defaults to UTF-8, and paste the same é: two bytes, C3 A9. Same character, one encoding can hold it and the other cannot — that is the entire comparison in one demo.

Practice

1. What byte is “~” in ASCII — and in UTF-8? 01111110 (126) in both — it is inside the shared first 128.

2. How many bytes does 你 take in UTF-8, and what are they? Three: E4 BD A0 (11100100 10111101 10100000). ASCII cannot represent it at all.

3. Is the string “café” pure ASCII? No — é (U+00E9) is outside 0–127. The first three characters are; the é needs UTF-8's second byte form C3 A9.

Frequently Asked Questions

What is the difference between ASCII and UTF-8?

ASCII is a 7-bit encoding with 128 characters — English letters, digits and basic symbols only. UTF-8 is a variable-length encoding using 1 to 4 bytes per character that covers all of Unicode. Crucially, UTF-8 contains ASCII as an exact subset: the first 128 characters are the same bytes in both.

Is UTF-8 backward compatible with ASCII?

Yes — by deliberate design. The first 128 UTF-8 characters use the exact same byte values as ASCII (A is 01000001 in both), so any pure-ASCII text is already valid UTF-8, and a UTF-8 reader handles every legacy ASCII file without conversion.

How many bytes is one character in UTF-8?

Between 1 and 4, depending on the character. English letters and digits are 1 byte, accented letters like é are 2 bytes (C3 A9), most Chinese characters are 3 bytes (你 is E4 BD A0), and emoji are 4 bytes (👋 is F0 9F 91 8B).

Can ASCII represent Chinese characters or emoji?

No. ASCII stops at 128 characters (0–127) — English letters, digits and punctuation. Chinese characters, emoji and even accented letters like é simply do not exist in ASCII; they need Unicode encodings such as UTF-8.

Is Unicode the same thing as UTF-8?

No. Unicode is the catalog — a numbered list assigning a code point to every character. UTF-8 is one encoding that turns those code points into bytes. UTF-16 and UTF-32 encode the same Unicode catalog differently.

Why does UTF-8 use variable-length bytes?

To get two wins at once: full ASCII compatibility and space efficiency. Common English text stays 1 byte per character (no size penalty over ASCII), while rarer characters rent 2–4 bytes only when needed. A fixed 4-byte encoding would quadruple the size of every English file.

Should I still use ASCII today?

Only in constrained or legacy contexts — old protocols, tiny embedded systems, or teaching byte basics. For any real text file, web page or API, UTF-8 is the modern default: same cost for English, everything else included.

What happens if you cut a multi-byte UTF-8 character in half?

The result is an invalid byte sequence. The first two bytes of 你 (E4 BD) without the third (A0) are not legal UTF-8 — strict decoders reject them, lenient ones show a replacement character (�), and wrong-encoding readers produce mojibake.

Written by Alex Rivera

Developer & Creator, Binary Code Translator

Alex builds and maintains Binary Code Translator and writes every guide on this site himself, verifying each conversion example against the site’s own conversion engine before publishing. More about the project