ISO 8859 is a group of related ISO standards for 8-bit character encodings for use by computers. These standards are based on ASCII, the most widely used 7-bit character encoding.

While the 128 ASCII characters are sufficient to exchange information in English without preventing comprehension, most other languages that use the Roman alphabet need additional symbols not covered by ASCII, such as ß (German), å (Swedish and other Nordic languages), etc. ISO 8859 sought to remedy this problem by extending 7-bit ASCII to eight bits, allowing positions for another 128 characters. However, more characters were needed to achieve this than could fit in a single 8-bit character encoding, so several were developed. All the encodings, however, encode the first 128 positions (from 0 to 127) in the same way as each other and the same way as ASCII. Positions 128 to 159 contain control characters. The upper 96 code points of each ISO 8859 encoding differ.

The ISO 8859 standards are designed for reliable information exchange, not typography. As a result, the standards omit symbols needed for high-quality typography, such as optional ligatures, curly quotation marks, dashes, etc. As a result, high-quality typesetting systems often use proprietary or idiosyncratic extensions on top of the ISO 8859 standards, or use Unicode instead.

As a rule of thumb, if a character or symbol was not already part of a widely used data-processing character set and was also not usually provided on typewriter keyboards for a national language, it didn't get in. Hence the directional double quotation marks « and » used for some European languages were included, but not the directional double quotation marks and used for English and some other languages. French didn't get its œ and Œ ligatures because French speakers had not previously needed them enough to demand them on their keyboards.

The ISO 8859 encodings provide the diacritic marks required for various European languages. They also provide non-Roman alphabets: Greek, Cyrillic (used by Russian, Bulgarian, and other languages), Hebrew, and Arabic. However, the standard makes no provision for the scripts of East Asian languages such as Chinese or Japanese, as these highly ideographic writing systems require many thousands of code points, many more than can be placed in a single 8-bit plane.

The encodings defined by ISO-8859 include:

The ISO 8859 standards are usually inadequate when one wishes to use multiple languages at once. For example, none of the above standards simultaneously supports Polish and Russian.

An alternative character set standard called Unicode was developed to unify coverage of the other character sets. It supports over a million code points (much more than ISO 8859) by using several character encodings of 8-bit, 16-bit, or variable-length words. Because Unicode does away with the limitations of 8-bit character encodings, it is often preferred for new applications. However, ISO 8859 has the advantage of being well-established, and simpler software is needed to manipulate it: the equation of one byte to one character holds, there are no combining characters or variant forms, and fonts remain conveniently small. Unicode's first 256 characters are identical to ISO-8859-1 (Latin 1). Most modern software uses Unicode internally, and maps the older 8-bit encodings like ISO 8859 to Unicode using conversion tables.

External References