One byte can contain only 256 different values.
This means that an encoding representing each character as a single byte, such as ISO-8859-1, cannot encode more than 256 different characters. That is why you cannot use ISO-8859-1 to correctly write Arabic, Japanese, or many other languages. Only limited space is available, and it is already in use by other characters.
UTF-8, on the other hand, should be able to display all millions of characters in Unicode. This makes it impossible to compress each individual character into one byte.
UTF-8 developers decided to make all ASCII characters (U + 0000 to U + 007F) representable with one byte and demanded that all other characters be stored as two or more bytes. If they decided to specify more characters in a single-byte representation, the encodings of the other characters would be longer and more complex.
If you want a visual explanation of why bytes above 7F do not represent the corresponding characters of 8859-1, look at the UTF-8 encoding block table on Wikipedia . You will see that each byte value outside the ASCII range either already has a value or is illegal for historical reasons. There is simply no place in the table for bytes to represent their 8859-1 equivalents, and providing additional byte values ββmay violate several important properties of UTF-8.
source share