Why some characters need more bytes
One byte can hold 256 values, and ASCII uses only 128 of them. Unicode needs far more room: its code points run from U+0000 to U+10FFFF, written as U+ and four to six hex digits.[1][2]
UTF-8 handles this by using one to four bytes per character. ASCII characters keep their single byte, and every other character gets a longer sequence.[3][4][5]
The UTF-8 byte patterns
| Code points | Bytes | 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 |
The first byte says how long the character is: the number of 1 bits before its first 0 is the number of bytes. Every byte after it starts with 10.[8]
Worked example: é
- Character
- é
- Binary
- 11000011 10101001
| Step | Value |
|---|---|
| Code point | U+00E9 |
| Code point in decimal | 233 |
| Code point in binary | 11101001 |
| Bytes UTF-8 uses for it | 2 |
| Byte pattern | 110xxxxx 10xxxxxx |
| Bits padded to fill the x places | 00011101001 |
| UTF-8 bytes | 11000011 10101001 |
- U+00E9 is 233, which needs 8 bits, more than the 7 a one-byte character can carry.
- So é uses the two-byte pattern, and its 11 payload bits are 00011101001.
Worked example: a smiling face emoji
- Character
- 😀
- Binary
- 11110000 10011111 10011000 10000000
| Step | Value |
|---|---|
| Code point | U+1F600 |
| Code point in decimal | 128512 |
| Code point in binary | 11111011000000000 |
| Bytes UTF-8 uses for it | 4 |
| Byte pattern | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
| Bits padded to fill the x places | 000011111011000000000 |
| UTF-8 bytes | 11110000 10011111 10011000 10000000 |
- U+1F600 is above U+FFFF, so it takes the four-byte pattern.
- That is why one emoji counts as one character but four bytes.
More characters and their bytes
| Character | Code point | Bytes | Binary |
|---|---|---|---|
| ñ | U+00F1 | 2 | 11000011 10110001 |
| ü | U+00FC | 2 | 11000011 10111100 |
| € | U+20AC | 3 | 11100010 10000010 10101100 |
| 世 | U+4E16 | 3 | 11100100 10111000 10010110 |
| 😀 | U+1F600 | 4 | 11110000 10011111 10011000 10000000 |
The Unicode FAQ gives its own example: the Polish letter ś, U+015B, is stored as the two bytes C5 9B, written in hex.[10]
UTF-8 also never reuses an ASCII byte inside a longer character, so plain English text stays readable even in software that only knows ASCII.[11][12]
Emoji made of more than one character
Some emoji are built from several code points. A skin tone is a separate modifier character placed after the emoji, and a flag is a pair of regional indicator symbols. Each part has its own bytes, so these emoji are longer than four bytes in binary.[13][14]
UTF-8 is the encoding most web pages use, so the bytes you see in the converter are the same bytes a browser reads.[15]
Questions about UTF-8
Is UTF-8 the same as Unicode?
No. Unicode gives each character a number, its code point. UTF-8 is one way to store those numbers as bytes, and UTF-16 and UTF-32 are two others.
Why does my emoji show as four bytes when I typed one character?
The converter counts characters by code point and bytes by UTF-8. Most emoji sit above U+FFFF, which needs the four-byte pattern.
Sources, last checked October 12, 2026
- Unicode FAQ: UTF-8, UTF-16, UTF-32 and BOM (Unicode Consortium)
the Unicode Standard has encoded characters in the range U+0000..U+10FFFF, which amounts to a 21-bit code space.
each character will then be represented either as a sequence of one to four 8-bit bytes, one or two 16-bit code units, or a single 32-bit code unit.
U+015B LATIN SMALL LETTER S WITH ACUTE would be encoded as two bytes: C5 9B.
UTF-8 uses the bytes in the ASCII only for ASCII characters.
UTF-8 is most common on the web.
- RFC 3629: UTF-8, a transformation format of ISO 10646 (IETF, 2003)
UCS characters are designated by the U+HHHH notation, where HHHH is a string of from 4 to 6 hexadecimal digits representing the character number in ISO/IEC 10646.
In UTF-8, characters from the U+0000..U+10FFFF range (the UTF-16 accessible range) are encoded using sequences of 1 to 4 octets.
US-ASCII characters are encoded in one octet having the normal US-ASCII value, and any octet with such a value can only stand for a US-ASCII character, and nothing else.
In a sequence of n octets, n>1, the initial octet has the n higher-order bits set to 1, followed by a bit set to 0.
The following octet(s) all have the higher-order bit set to 1 and the following bit set to 0, leaving 6 bits in each to contain bits from the character to be encoded.
The first octet of a multi-octet sequence indicates the number of octets in the sequence.
A direct consequence is that a plain ASCII string is also a valid UTF-8 string.
- Unicode FAQ: Emoji and Pictographs (Unicode Consortium)
Emoji are “picture characters” originally associated with mobile phone usage in Japan, but are now popular worldwide.
many such emoji may be followed by an emoji modifier character specifying one of five possible skin tones, based on the Fitzpatrick scale.
The Unicode Standard encodes a set of 26 regional indicator symbols at the end of the Enclosed Alphanumeric Supplement block.