Main Page | See live article | Alphabetical index

Extended ASCII

The term extended ASCII describes 8-bit or larger character encodings that include the standard 7-bit ASCII characters as well as others. Because the number of written symbols used in common natural languages far exceeds the limited range of the ASCII code, many extensions to it have been used to facilitate handling of those languages. Foreign markets for computers and communication equipment were historically open long before standards bodies had time to deliberate upon the best way to accommodate them, so there are many incompatible proprietary extensions to ASCII.

Since ASCII x was a 7-bit code, and most computers manipulate data in 8-bit bytes, many extensions use the additional 128 codes available by using all 8 bits of each byte. This helps include many languages otherwise not easily representable in ASCII, but still not enough to cover all languages of countries in which computers are sold, so even these 8-bit extensions had to have local variants. Among the first popular set of 8-bit extended ASCII codes were the Microsoft code pages, the system used by the popular MS-DOS operating system. In the code page system, the lower 128 characters maintained their standard US-ASCII values, and different pages (or sets of characters) could be made available in the upper 128 characters. MS-DOS computers built for the American market, for example, used code page 437, which included accented characters needed for French, German, and a few other European languages, as well as some graphical line-drawing characters. This code page was based on the similar ASCII extension used by the Digital VT-220 terminal. The larger character set made it possible to create documents in a combination of languages such as English and French, but not, for example, in English and Greek (which required code page 737).

Eventually, ISO created international standard ISO 8859 describing its own set of 8-bit ASCII extensions. The most popular was ISO 8859-1, also called ISO Latin1, which contained characters sufficient for the most popular Western European languages. Variations were standardized for other languages as well: ISO 8859-2 for Eastern European languages and ISO 8859-5 for Cyrillic languages, for example. One notable way in which ISO character sets differ from code pages is that the character positions 128 to 159, corresponding to ASCII "control" characters with the high order bit set, are specifically unused and undefined in the ISO standards, while they are often used for printable characters in code pages. Microsoft later created code page 1252, a compatible superset of ISO 8859-1 with extra characters in the ISO unused range. Code page 1252 is the standard character encoding of English versions of Microsoft Windows. ISO 8859-1 is the common character encoding used by the X Window System, and most Internet standards. The Apple Macintosh uses its own proprietary encodings.

One problem with 8-bit codes is that computer keyboards were originally designed for 7-bit ASCII, and users became accustomed to them. Different manufacturers have solved this problem in different ways, sometimes by using additional shift-type keys labelled "Alt" or "Meta", and sometimes by interpreting multi-keystroke sequences. MS-DOS, for example, allowed the user to enter any character by typing its 3-digit numeric value while holding down the Alt key. While it did allow users to take advantage of the full MS-DOS code page 437 character set, it was difficult to remember and caused problems when users switched to other character sets (including Microsoft's switch to code page 1252). On a Microsoft Windows machine now, typing a 4-digit number (beginning with 0) with the Alt key down will enter that code; typing a 3-digit number will actually enter the new page 1252 code for whatever character was in the page 437 position indicated. For example, code page 437 used code 151 for the lowercase "u" with grave accent. Typing Alt-151 on a Windows machine will actually produce code 249, which is where code page 1252 puts that character, so you'll get a lowercase "u" with grave accent. If you want the character that is now in position 151 of code page 1252 (which is the em dash), you must type Alt-0151.

Because these ASCII extensions have so many variants, it is necessary to identify which set is being used for a particular text for it to be interpreted correctly. However, because the most-used characters (those in the original 7-bit ASCII) are common to all sets--even most proprietary ones like the Macintosh--failure to correctly identify a character set often suffers no adverse consequences. Further, because many Internet standards use ISO 8859-1, and because Microsoft Windows (using the code page 1252 superset of ISO 8859-1) is the dominant operating system for personal computers today, unannounced use of ISO 8859-1 is quite commonplace, and should generally be assumed without evidence to the contrary.

A proposal called Unicode was made to address many of these problems, and is now becoming widely accepted. International standard ISO 10646 (based on Unicode) is a 16-bit code, meaning that it can represent 65,536 characters instead of the 128 of ASCII or 256 of extended ASCII. The first 256 codes in Unicode are identical to ISO 8859-1.