128 characters are specified in ascii scheme.
how many characters are specified in ascii scheme?
128
ascii was incorporated into the unicode (1991) character set as the first 128 symbols, so the 7-bit ascii characters have the same numeric codes in both sets. this allows utf-8 to be backward compatible with 7-bit ascii, as a utf-8 file containing only ascii characters is identical to an ascii file containing the same sequence of characters. even more importantly, forward compatibility is ensured as software that recognizes only 7-bit ascii characters as special and does not alter bytes with the highest bit set (as is often done to support 8-bit ascii extensions such as iso-8859-1) will preserve utf-8 data unchanged.
ascii
bullet::::- "backward compatibility:" backwards compatibility with ascii and the enormous amount of software designed to process ascii-encoded text was the main driving force behind the design of utf-8. in utf-8, single bytes with values in the range of 0 to 127 map directly to unicode code points in the ascii range. single bytes in this range represent characters, as they do in ascii. moreover, 7-bit bytes (bytes where the most significant bit is 0) never appear in a multi-byte sequence, and no valid multi-byte sequence decodes to an ascii code-point. a sequence of 7-bit bytes is both valid ascii and valid utf-8, and under either interpretation represents the same sequence of characters. therefore, the 7-bit bytes in a utf-8 stream represent all and only the ascii characters in the stream. thus, many text processors, parsers, protocols, file formats, text display programs etc., which use ascii characters for formatting and control purposes will continue to work as intended by treating the utf-8 byte stream as a sequence of single-byte characters, without decoding the multi-byte sequences. ascii characters on which the processing turns, such as punctuation, whitespace, and control characters will never be encoded as multi-byte sequences. it is therefore safe for such processors to simply ignore or pass-through the multi-byte sequences, without decoding them. for example, ascii whitespace may be used to tokenize a utf-8 stream into words; ascii line-feeds may be used to split a utf-8 stream into lines; and ascii nul characters can be used to split utf-8-encoded data into null-terminated strings. similarly, many format strings used by library functions like "printf" will correctly handle utf-8-encoded input arguments.
utf-8