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. As of January 2024[update], 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, 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.

Windows-1251
0123456789ABCDEF
0xNULSOHSTXETXEOTENQACKBELBSHTLFVTFFCRSOSI
1xDLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS
2xSP!"#$%&'()*+,-./
3x0123456789:;<=>?
4x@ABCDEFGHIJKLMNO
5xPQRSTUVWXYZ[\]^_
6x`abcdefghijklmno
7xpqrstuvwxyz{|}~DEL
8xЂЃѓЉЊЌЋЏ
9xђљњќћџ
AxNBSPЎўЈ¤Ґ¦§Ё©Є«¬SHY®Ї
Bx°±Ііґµ·ёє»јЅѕї
CxАБВГДЕЖЗИЙКЛМНОП
DxРСТУФХЦЧШЩЪЫЬЭЮЯ
Exабвгдежзийклмноп
Fxрстуфхцчшщъыьэюя

Kazakh variants

KZ-1048

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

KZ-1048 (STRK1048-2002)
0123456789ABCDEF
8xЂЃѓЉЊҚҺЏ
9xђљњқһџ
AxNBSPҰұӘ¤Ө¦§Ё©Ғ«¬SHY®Ү
Bx°±Ііөµ·ёғ»әҢңү

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.

Code page 1174
0123456789ABCDEF
8xЂЃѓҺЊҚЋЏ
9xђһњқћџ
AxNBSPҰұӘ¤Ө¦§Ё©Ғ«¬SHY®Ү
Bx°±Ііөµ·ёғ»әҢңү

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 Ŗ/ŗ.

Windows Latvian + Russian
0123456789ABCDEF
8xŪĢōŽŠĒĶČģ
9xūžšēķčŌ
AxNBSPĀāϤ獵Ё©Ņ«¬SHY®¯
Bx°±Īī´µ·ёņ»¼½¾×

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.

Windows Cyrillic + Finnish
0123456789ABCDEF
8xЂЃѓˆЉЊЌЋЏ
9xђ˜љњќћџ
AxNBSPЎўÓ¤Ґ¦§Ё©Ä«¬SHY®Ö
Bx°±Ååґµ·ёä»óÉéö

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, under which name it is registered with the IANA.

Amiga-1251
0123456789ABCDEF
8xXXXXXXBPHNBHINDNELSSAESAHTSHTJVTSPLDPLURISS2SS3
9xDCSPU1PU2STSCCHMWSPAEPASOSXXXSCICSISTOSCPMAPC
AxNBSP¡¢£¥¦§Ё©«¬SHY®¯
Bx°±²³´µ·ё¹º»¼½¾¿

See also

Further reading

  • Kornai, Andras; Birnbaum, David J.; da Cruz, Frank; Davis, Bur; Fowler, George; Paine, Richard B.; Paperno, Slava; Simonsen, Keld J.; Thobe, Glenn E.; Vulis, Dimitri; van Wingen, Johan W. (1993-03-13). .

External links