Back to Character Encoding

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.