Windows-1251 is an 8-bit character encoding, designed to cover languages that use the Cyrillic script such as Russian, Ukrainian, Belarusian, Bulgarian, Serbian Cyrillic, Macedonian and other languages.

On the web, it is the second most-used single-byte character encoding (or third most-used character encoding overall), and most used of the single-byte encodings supporting Cyrillic. , 0.3% of all websites use Windows-1251. It is by far mostly used for Russian, while a small minority of Russian websites use it, with 94.6% of Russian (.ru) websites using UTF-8,<!-- It is among the top used encodings for any country/language, EUC-KR is possibly higher, and Breton at 13.4% use of ISO-8859-1 has most use https://w3techs.com/technologies/segmentation/cl-br-/character_encoding for a single language. Windows-1251 is used by 4.7% of Russian language, as opposed to .ru websites which has higher stats. --> and the legacy 8-bit encoding is distant second. In Linux, the encoding is known as cp1251. IBM uses code page 1251 (CCSID 1251 and euro sign extended CCSID 5347) for Windows-1251.

Windows-1251 and KOI8-R (or its Ukrainian variant KOI8-U) are much more commonly used than ISO 8859-5 (which is used by less than 0.0004% of websites). In contrast to Windows-1252 and ISO 8859-1, Windows-1251 is not closely related to ISO 8859-5.

Unicode (e.g. UTF-8) is preferred to Windows-1251 or other Cyrillic encodings in modern applications, especially on the Internet, making UTF-8 the dominant encoding for web pages. (For further discussion of Unicode's complete coverage, of 436 Cyrillic letters/code points, including for Old Cyrillic, and how single-byte character encodings, such as Windows-1251 and KOI8-R, cannot provide this, see Cyrillic script in Unicode.)

Character set

The following table shows Windows-1251. Each character is shown with its Unicode equivalent and its Alt code.

{|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|}

Kazakh variants

KZ-1048

An altered version of Windows-1251 was standardised in Kazakhstan as Kazakh standard STRK1048, and is known by the label . It differs in the rows shown below:

{|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|}

Code Page 1174

Code Page 1174 is another variant created for the Kazakh language, which matches Windows-1251 for the Russian subset of the Cyrillic letters. It differs from KZ-1048 by moving the Cyrillic letter Shha from 8E/9E to 8A/9A.

{|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|}

Latvian variant

Windows Latvian + Russian is a modification of Windows-1251 to support the Latvian language. It uses the letter Ō/ō, abolished in 1946 but still used in the Latgalian language while it lacks the letter Ŗ/ŗ.

{|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|}

Finnish variant

Windows Cyrillic + Finnish is a modification of Windows-1251 that was used by Paratype to cover the Finnish language. This encoding is supported by FontLab Studio 5. This variant is missing the letters Š and Ž which are used in loanwords in Finnish and can be replaced by the digraphs SH and ZH.

{|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|}

Amiga variant

Russian Amiga OS systems used a version of code page 1251 which matches Windows-1251 for the Russian subset of the Cyrillic letters, but otherwise mostly follows ISO-8859-1. This version is known as Amiga-1251,

{|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|-

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|}

See also

  • Latin script in Unicode
  • Cyrillic script in Unicode
  • Unicode
  • Universal Character Set
  • European <!-- Latin --> Unicode subset (DIN 91379) <!-- (thus also Greek and Cyrillic for Bulgarian) -->
  • UTF-8

References

Further reading

  • Windows 1251 reference chart<!-- not found in archive.org-->
  • IANA Charset Name Registration
  • Unicode mappings of windows 1251 with "best fit"
  • Universal Cyrillic decoder, an online program that may help recovering unreadable Cyrillic texts with broken Windows-1251 or other character encodings.