ISO-8859: The Family of Single-Byte Character Sets

· 2 min read

Before Unicode, the most common approach to internationalization was to use different single-byte character sets for different regions. The ISO 8859 standard defined a family of 15 encodings, each covering a different group of languages while sharing the ASCII characters in positions 0–127.

The ISO-8859 Family

Each part of ISO 8859 targets a language group. ISO-8859-1 (Latin-1) covers Western European languages; ISO-8859-2 covers Central European languages (Polish, Czech, Hungarian); ISO-8859-5 covers Cyrillic script; ISO-8859-6 covers Arabic; ISO-8859-7 covers Greek; ISO-8859-8 covers Hebrew; and ISO-8859-15 is a revision of Latin-1 that adds the Euro sign. Our encodings reference covers the most commonly encountered members of this family.

The 128–255 Range

All ISO-8859 encodings share the same lower 128 characters (identical to ASCII) but differ in how they use code points 128–255. This design allows ASCII-only text to be exchanged between systems using different ISO-8859 variants without corruption. Only text that uses characters above U+007F requires knowing which specific variant was used.

Limitations

The fundamental limitation of single-byte encodings is that 256 slots can't hold the full range of characters needed by any single language group — let alone support multilingual documents. A document containing both Polish and Greek characters simply couldn't be represented in any single ISO-8859 variant. This limitation drove demand for Unicode.

Legacy and Compatibility

ISO-8859-1 remains important because of its relationship to Windows-1252 and its role in HTTP and HTML defaults. UTF-8 has superseded the whole ISO-8859 family for new development, but the encodings appear in legacy systems, embedded devices, and older documents. Use our byte decoder to interpret bytes under any ISO-8859 encoding.

More Articles

View all articles