ISO-8859-5 ISO-8859-5 (Cyrillic) ISO-8859
A Cyrillic-script encoding for Russian, Bulgarian, and other Slavic languages — largely displaced in practice by Windows-1251 and KOI8-R.
What it is
ISO-8859-5 provides a Cyrillic-script encoding for Russian, Bulgarian, Macedonian, Serbian, and other Slavic languages using Cyrillic script. Despite being the "official" ISO standard for Cyrillic in this family, it saw comparatively limited real-world adoption — Windows-1251 became the dominant Cyrillic encoding on Windows systems, and KOI8-R had strong entrenched use in Unix/early Russian internet contexts, leaving ISO-8859-5 as more of a formal standard than a widely deployed one.
Byte structure
| Byte range | Content |
|---|---|
| 0x00–0x7F | Identical to ASCII |
| 0xA0–0xFF | Cyrillic letters and symbols |
Why your text is garbled (symptom → cause)
| Symptom | Likely cause |
|---|---|
| Cyrillic text is completely unreadable garbage | Text is actually Windows-1251 or KOI8-R (much more common in practice) being misread as ISO-8859-5, or vice versa — the three encodings assign Cyrillic letters to different byte ranges |
| Old Russian-language file shows reversed-looking Cyrillic | Classic KOI8-R vs. other-Cyrillic-encoding mismatch — KOI8-R's byte layout is notably different from ISO-8859-5/Windows-1251 |
Compatibility & gotchas
- Not the dominant real-world Cyrillic encoding — Windows-1251 (Windows ecosystem) and KOI8-R (early Russian Unix/internet systems) both saw much wider adoption than ISO-8859-5 historically, despite it being the formal ISO standard.
- Three-way encoding confusion is common with older Cyrillic text — always verify which of ISO-8859-5, Windows-1251, or KOI8-R a given legacy source actually used before assuming.
Fixing it
- Command-line conversion:
iconv -f ISO-8859-5 -t UTF-8 input.txt -o output.txt - If unsure which Cyrillic encoding applies: try converting from all three candidates (ISO-8859-5, Windows-1251, KOI8-R) and visually check which produces readable Russian/Slavic text.
Comparison
| Encoding | Key difference from ISO-8859-5 |
|---|---|
| Windows-1251 | The more commonly deployed Cyrillic encoding on Windows systems, different byte assignments |
| KOI8-R | Historically dominant in Russian Unix/early internet contexts, notably different byte layout |
| UTF-8 | Full Unicode coverage, the modern default |
FAQ
Why is ISO-8859-5 less common than Windows-1251 for Cyrillic text?
Windows-1251 became the de facto standard within the Windows ecosystem specifically, which dominated desktop computing in Russian-speaking regions during the relevant era — giving it much broader real-world adoption despite ISO-8859-5 being the formal ISO standard for Cyrillic in this encoding family.
How do I tell which Cyrillic encoding a file uses?
Without an explicit declaration, it usually requires trial and error — try decoding with each candidate encoding (ISO-8859-5, Windows-1251, KOI8-R) and check which produces coherent, readable text.
Fun fact
Despite being part of the internationally standardized ISO-8859 family, ISO-8859-5's relatively limited real-world adoption for Cyrillic text is a notable exception to the pattern seen elsewhere in the family (like Latin-1's dominance for Western European text) — a reminder that formal standardization doesn't automatically translate into actual market adoption.