Кодовая страница ansi 1251 кириллица windows

From Wikipedia, the free encyclopedia

From Wikipedia, the free encyclopedia

Windows-1251

MIME / IANA windows-1251
Alias(es) cp1251 (Code page 1251)
Language(s) Russian, Ukrainian, Belarusian, Bulgarian, Serbian Cyrillic, Bosnian Cyrillic, Macedonian, Rotokas, Rusyn, English
Created by Microsoft
Standard WHATWG Encoding Standard
Classification extended ASCII, Windows-125x
Other related encoding(s) Amiga-1251, KZ-1048,
RFC 1345’s «ECMA-Cyrillic»
  • v
  • t
  • e

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 November 2022, 0.4% of all websites use Windows-1251.[1][2] It’s by far mostly used for Russian, while a small minority of Russian websites use it, with 93.7% of Russian (.ru) websites using UTF-8,[3][4][5] and the legacy 8-bit encoding is distant second. In Linux, the encoding is known as cp1251.[6] IBM uses code page 1251 (CCSID 1251 and euro sign extended CCSID 5347) for Windows-1251.[7][8][9][10][11][12][13]

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).[14] 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[edit]

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

Windows-1251[15]
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1x DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2x  SP  ! » # $ % & ( ) * + , . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~ DEL
8x Ђ Ѓ ѓ Љ Њ Ќ Ћ Џ
9x ђ љ њ ќ ћ џ
Ax NBSP Ў ў Ј ¤ Ґ ¦ § Ё © Є « ¬ SHY ® Ї
Bx ° ± І і ґ µ · ё є » ј Ѕ ѕ ї
Cx А Б В Г Д Е Ж З И Й К Л М Н О П
Dx Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
Ex а б в г д е ж з и й к л м н о п
Fx р с т у ф х ц ч ш щ ъ ы ь э ю я

Kazakh variant[edit]

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)[16]
0 1 2 3 4 5 6 7 8 9 A B C D E F
8x Ђ Ѓ ѓ Љ Њ Қ Һ Џ
9x ђ љ њ қ һ џ
Ax NBSP Ұ ұ Ә ¤ Ө ¦ § Ё © Ғ « ¬ SHY ® Ү
Bx ° ± І і ө µ · ё ғ » ә Ң ң ү

  Differences from Windows-1251

Amiga variant[edit]

Amiga-1251

MIME / IANA Amiga-1251
Alias(es) Ami1251
Language(s) English, Russian
Classification extended ASCII
Based on Windows-1251, ISO-8859-1, ISO-8859-15
  • v
  • t
  • e

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

Amiga-1251[17]
0 1 2 3 4 5 6 7 8 9 A B C D E F
8x XXX XXX BPH NBH IND NEL SSA ESA HTS HTJ VTS PLD PLU RI SS2 SS3
9x DCS PU1 PU2 STS CCH MW SPA EPA SOS XXX SCI CSI ST OSC PM APC
Ax NBSP ¡ ¢ £ [a] ¥ ¦ § Ё © [b] « ¬ SHY ® ¯
Bx ° ± ² ³ ´ µ · ё ¹ º » ¼ ½ ¾ ¿

  Different from Windows-1251 to match ISO-8859-1

  Different from both Windows-1251 and ISO-8859-1

  1. ^ Matching ISO-8859-15; at a different location than in Windows-1251
  2. ^ Present in Windows-1251, but in a different location (absent from ISO-8859-1/15)

See also[edit]

  • Latin script in Unicode
  • Unicode
  • Universal Character Set
    • European Unicode subset (DIN 91379)
  • UTF-8

References[edit]

  1. ^ «Historical trends in the usage of character encodings, November 2022». Retrieved 2022-11-28.
  2. ^ «Frequently Asked Questions».
  3. ^ «Distribution of Character Encodings among websites that use .ru». w3techs.com. Retrieved 2022-11-28.
  4. ^ «Distribution of Character Encodings among websites that use Russian». w3techs.com. Retrieved 2023-01-16.
  5. ^ «Distribution of Character Encodings among websites that use Russian Federation». w3techs.com. Retrieved 2021-11-05.
  6. ^ «cp1251(7) — Linux manual page». man7.org. Retrieved 2018-07-01.
  7. ^ «Code page 1251 information document». Archived from the original on 2016-03-03.
  8. ^ «CCSID 1251 information document». Archived from the original on 2014-11-29.
  9. ^ «CCSID 5347 information document». Archived from the original on 2014-11-29.
  10. ^ Code Page CPGID 01251 (pdf) (PDF), IBM
  11. ^ Code Page CPGID 01251 (txt), IBM
  12. ^ International Components for Unicode (ICU), ibm-1251_P100-1995.ucm, 2002-12-03
  13. ^ International Components for Unicode (ICU), ibm-5347_P100-1998.ucm, 2002-12-03
  14. ^ «Usage Statistics of Character Encodings for Websites». w3techs.com. Archived from the original on 2012-05-30.
  15. ^ Steele, Shawn (1998). CP1251 to Unicode table. Unicode Consortium. CP1251.TXT.
  16. ^ Whistler, Ken (2007). KZ-1048 to Unicode. Unicode Consortium. KZ1048.TXT.
  17. ^ a b Malyshev, Michael (2003). «Amiga-1251 to Unicode table». Registration of new charset [Amiga-1251]. IANA.
  18. ^ «Character Sets». IANA.

Further reading[edit]

  • 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). «CYRILLIC ENCODING FAQ Version 1.3». Retrieved 2020-06-24.

External links[edit]

  • Windows 1251 reference chart
  • 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.

From Wikipedia, the free encyclopedia

Windows-1251

MIME / IANA windows-1251
Alias(es) cp1251 (Code page 1251)
Language(s) Russian, Ukrainian, Belarusian, Bulgarian, Serbian Cyrillic, Bosnian Cyrillic, Macedonian, Rotokas, Rusyn, English
Created by Microsoft
Standard WHATWG Encoding Standard
Classification extended ASCII, Windows-125x
Other related encoding(s) Amiga-1251, KZ-1048,
RFC 1345’s «ECMA-Cyrillic»
  • v
  • t
  • e

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 November 2022, 0.4% of all websites use Windows-1251.[1][2] It’s by far mostly used for Russian, while a small minority of Russian websites use it, with 93.7% of Russian (.ru) websites using UTF-8,[3][4][5] and the legacy 8-bit encoding is distant second. In Linux, the encoding is known as cp1251.[6] IBM uses code page 1251 (CCSID 1251 and euro sign extended CCSID 5347) for Windows-1251.[7][8][9][10][11][12][13]

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).[14] 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[edit]

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

Windows-1251[15]
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1x DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2x  SP  ! » # $ % & ( ) * + , . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~ DEL
8x Ђ Ѓ ѓ Љ Њ Ќ Ћ Џ
9x ђ љ њ ќ ћ џ
Ax NBSP Ў ў Ј ¤ Ґ ¦ § Ё © Є « ¬ SHY ® Ї
Bx ° ± І і ґ µ · ё є » ј Ѕ ѕ ї
Cx А Б В Г Д Е Ж З И Й К Л М Н О П
Dx Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
Ex а б в г д е ж з и й к л м н о п
Fx р с т у ф х ц ч ш щ ъ ы ь э ю я

Kazakh variant[edit]

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)[16]
0 1 2 3 4 5 6 7 8 9 A B C D E F
8x Ђ Ѓ ѓ Љ Њ Қ Һ Џ
9x ђ љ њ қ һ џ
Ax NBSP Ұ ұ Ә ¤ Ө ¦ § Ё © Ғ « ¬ SHY ® Ү
Bx ° ± І і ө µ · ё ғ » ә Ң ң ү

  Differences from Windows-1251

Amiga variant[edit]

Amiga-1251

MIME / IANA Amiga-1251
Alias(es) Ami1251
Language(s) English, Russian
Classification extended ASCII
Based on Windows-1251, ISO-8859-1, ISO-8859-15
  • v
  • t
  • e

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

Amiga-1251[17]
0 1 2 3 4 5 6 7 8 9 A B C D E F
8x XXX XXX BPH NBH IND NEL SSA ESA HTS HTJ VTS PLD PLU RI SS2 SS3
9x DCS PU1 PU2 STS CCH MW SPA EPA SOS XXX SCI CSI ST OSC PM APC
Ax NBSP ¡ ¢ £ [a] ¥ ¦ § Ё © [b] « ¬ SHY ® ¯
Bx ° ± ² ³ ´ µ · ё ¹ º » ¼ ½ ¾ ¿

  Different from Windows-1251 to match ISO-8859-1

  Different from both Windows-1251 and ISO-8859-1

  1. ^ Matching ISO-8859-15; at a different location than in Windows-1251
  2. ^ Present in Windows-1251, but in a different location (absent from ISO-8859-1/15)

See also[edit]

  • Latin script in Unicode
  • Unicode
  • Universal Character Set
    • European Unicode subset (DIN 91379)
  • UTF-8

References[edit]

  1. ^ «Historical trends in the usage of character encodings, November 2022». Retrieved 2022-11-28.
  2. ^ «Frequently Asked Questions».
  3. ^ «Distribution of Character Encodings among websites that use .ru». w3techs.com. Retrieved 2022-11-28.
  4. ^ «Distribution of Character Encodings among websites that use Russian». w3techs.com. Retrieved 2023-01-16.
  5. ^ «Distribution of Character Encodings among websites that use Russian Federation». w3techs.com. Retrieved 2021-11-05.
  6. ^ «cp1251(7) — Linux manual page». man7.org. Retrieved 2018-07-01.
  7. ^ «Code page 1251 information document». Archived from the original on 2016-03-03.
  8. ^ «CCSID 1251 information document». Archived from the original on 2014-11-29.
  9. ^ «CCSID 5347 information document». Archived from the original on 2014-11-29.
  10. ^ Code Page CPGID 01251 (pdf) (PDF), IBM
  11. ^ Code Page CPGID 01251 (txt), IBM
  12. ^ International Components for Unicode (ICU), ibm-1251_P100-1995.ucm, 2002-12-03
  13. ^ International Components for Unicode (ICU), ibm-5347_P100-1998.ucm, 2002-12-03
  14. ^ «Usage Statistics of Character Encodings for Websites». w3techs.com. Archived from the original on 2012-05-30.
  15. ^ Steele, Shawn (1998). CP1251 to Unicode table. Unicode Consortium. CP1251.TXT.
  16. ^ Whistler, Ken (2007). KZ-1048 to Unicode. Unicode Consortium. KZ1048.TXT.
  17. ^ a b Malyshev, Michael (2003). «Amiga-1251 to Unicode table». Registration of new charset [Amiga-1251]. IANA.
  18. ^ «Character Sets». IANA.

Further reading[edit]

  • 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). «CYRILLIC ENCODING FAQ Version 1.3». Retrieved 2020-06-24.

External links[edit]

  • Windows 1251 reference chart
  • 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.



Windows-1251 — набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Данная кодировка пользуется довольно большой популярностью в восточно-европейских странах. Windows-1251 выгодно отличается от других 8-битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в традиционной русской типографике для обычного текста (отсутствует только знак ударения). Кириллические символы идут в алфавитном порядке.
Windows-1251 также содержит все символы для близких к русскому языку языков: белорусского, украинского, сербского, македонского и болгарского.
На практике этого оказалось достаточно, чтобы кодировка Windows-1251 закрепилась в интернете вплоть до распространения UTF-8.

Таблица кодов символов Windows-1251

Dec Hex Символ   Dec Hex Символ
000 00 NOP   128 80 Ђ
001 01 SOH   129 81 Ѓ
002 02 STX   130 82
003 03 ETX   131 83 ѓ
004 04 EOT   132 84
005 05 ENQ   133 85
006 06 ACK   134 86
007 07 BEL   135 87
008 08 BS   136 88
009 09 TAB   137 89
010 0A LF   138 8A Љ
011 0B VT   139 8B
012 0C FF   140 8C Њ
013 0D CR   141 8D Ќ
014 0E SO   142 8E Ћ
015 0F SI   143 8F Џ
016 10 DLE   144 90 ђ
017 11 DC1   145 91
018 12 DC2   146 92
019 13 DC3   147 93
020 14 DC4   148 94
021 15 NAK   149 95
022 16 SYN   150 96
023 17 ETB   151 97
024 18 CAN   152 98
025 19 EM   153 99
026 1A SUB   154 9A љ
027 1B ESC   155 9B
028 1C FS   156 9C њ
029 1D GS   157 9D ќ
030 1E RS   158 9E ћ
031 1F US   159 9F џ
032 20 SP   160 A0  
033 21 !   161 A1 Ў
034 22 «   162 A2 ў
035 23 #   163 A3 Ћ
036 24 $   164 A4 ¤
037 25 %   165 A5 Ґ
038 26 &   166 A6 ¦
039 27   167 A7 §
040 28 (   168 A8 Ё
041 29 )   169 A9 ©
042 2A *   170 AA Є
043 2B +   171 AB «
044 2C ,   172 AC ¬
045 2D   173 AD ­
046 2E .   174 AE ®
047 2F /   175 AF Ї
048 30 0   176 B0 °
049 31 1   177 B1 ±
050 32 2   178 B2 І
051 33 3   179 B3 і
052 34 4   180 B4 ґ
053 35 5   181 B5 µ
054 36 6   182 B6
055 37 7   183 B7 ·
056 38 8   184 B8 ё
057 39 9   185 B9
058 3A :   186 BA є
059 3B ;   187 BB »
060 3C <   188 BC ј
061 3D =   189 BD Ѕ
062 3E >   190 BE ѕ
063 3F ?   191 BF ї
064 40 @   192 C0 А
065 41 A   193 C1 Б
066 42 B   194 C2 В
067 43 C   195 C3 Г
068 44 D   196 C4 Д
069 45 E   197 C5 Е
070 46 F   198 C6 Ж
071 47 G   199 C7 З
072 48 H   200 C8 И
073 49 I   201 C9 Й
074 4A J   202 CA К
075 4B K   203 CB Л
076 4C L   204 CC М
077 4D M   205 CD Н
078 4E N   206 CE О
079 4F O   207 CF П
080 50 P   208 D0 Р
081 51 Q   209 D1 С
082 52 R   210 D2 Т
083 53 S   211 D3 У
084 54 T   212 D4 Ф
085 55 U   213 D5 Х
086 56 V   214 D6 Ц
087 57 W   215 D7 Ч
088 58 X   216 D8 Ш
089 59 Y   217 D9 Щ
090 5A Z   218 DA Ъ
091 5B [   219 DB Ы
092 5C   220 DC Ь
093 5D ]   221 DD Э
094 5E ^   222 DE Ю
095 5F _   223 DF Я
096 60 `   224 E0 а
097 61 a   225 E1 б
098 62 b   226 E2 в
099 63 c   227 E3 г
100 64 d   228 E4 д
101 65 e   229 E5 е
102 66 f   230 E6 ж
103 67 g   231 E7 з
104 68 h   232 E8 и
105 69 i   233 E9 й
106 6A j   234 EA к
107 6B k   235 EB л
108 6C l   236 EC м
109 6D m   237 ED н
110 6E n   238 EE о
111 6F o   239 EF п
112 70 p   240 F0 р
113 71 q   241 F1 с
114 72 r   242 F2 т
115 73 s   243 F3 у
116 74 t   244 F4 ф
117 75 u   245 F5 х
118 76 v   246 F6 ц
119 77 w   247 F7 ч
120 78 x   248 F8 ш
121 79 y   249 F9 щ
122 7A z   250 FA ъ
123 7B {   251 FB ы
124 7C |   252 FC ь
125 7D }   253 FD э
126 7E ~   254 FE ю
127 7F DEL   255 FF я

Описание специальных (управляющих) символов

Первоначально управляющие символы таблицы ASCII (диапазон 00-31, плюс 127) были разработаны для того, чтобы управлять устройствами аппаратных средств, таких как телетайп, ввод данных на перфоленту и др.
Управляющие символы (кроме горизонтальной табуляции, перевода строки и возврата каретки) не используются в HTML-документах.

Cпециальные (управляющие) символы

Код Описание
NUL, 00 Null, пустой
SOH, 01 Start Of Heading, начало заголовка
STX, 02 Start of TeXt, начало текста
ETX, 03 End of TeXt, конец текста
EOT, 04 End of Transmission, конец передачи
ENQ, 05 Enquire. Прошу подтверждения
ACK, 06 Acknowledgement. Подтверждаю
BEL, 07 Bell, звонок
BS, 08 Backspace, возврат на один символ назад
TAB, 09 Tab, горизонтальная табуляция
LF, 0A Line Feed, перевод строки
Сейчас в большинстве языков программирования обозначается как n
VT, 0B Vertical Tab, вертикальная табуляция
FF, 0C Form Feed, прогон страницы, новая страница
CR, 0D Carriage Return, возврат каретки
Сейчас в большинстве языков программирования обозначается как r
SO, 0E Shift Out, изменить цвет красящей ленты в печатающем устройстве
SI, 0F Shift In, вернуть цвет красящей ленты в печатающем устройстве обратно
DLE, 10 Data Link Escape, переключение канала на передачу данных
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Device Control, символы управления устройствами
NAK, 15 Negative Acknowledgment, не подтверждаю
SYN, 16 Synchronization. Символ синхронизации
ETB, 17 End of Text Block, конец текстового блока
CAN, 18 Cancel, отмена переданного ранее
EM, 19 End of Medium, конец носителя данных
SUB, 1A Substitute, подставить. Ставится на месте символа, значение которого было потеряно или испорчено при передаче
ESC, 1B Escape Управляющая последовательность
FS, 1C File Separator, разделитель файлов
GS, 1D Group Separator, разделитель групп
RS, 1E Record Separator, разделитель записей
US, 1F Unit Separator, разделитель юнитов
DEL, 7F Delete, стереть последний символ.

Смотрите также:

URL коды символов ACSII

URL коды символов UTF-8 диапазон от U+0400 до U+04FF

HTML Кодирование URL

Таблица кодов символов кирилицы UTF-8



Содержание

  1. Windows 1251
  2. Содержание
  3. Таблицы
  4. Кодировка Windows-1251 (синоним CP1251)
  5. Другие варианты
  6. Кодировка CP1251-k (KazWin, казахская кодировка)
  7. Кодировка Windows-1251 (чувашский вариант)
  8. Татарский вариант
  9. Внешние ссылки
  10. Полезное
  11. Смотреть что такое «Windows 1251» в других словарях:
  12. Отличие utf-8 и windows 1251
  13. О разнице между двумя кодировками utf-8 и windows 1251
  14. О кодировках utf-8 и windows 1251
  15. Чем отличаются utf-8 и windows 1251
  16. Что такое кодировка windows 1251
  17. Что такое кодировка UTF-8
  18. Пример вывода текста в кодировках utf-8 латиницы
  19. Чем отличается текст в кодировках utf-8 и windows 1251
  20. Пример вывода текста в кодировках utf-8 кириллицы
  21. Пример отличия в кодировках utf-8 и windows 1251
  22. Что делать, если функция для кириллицы на utf-8 не работают?

Windows 1251

Windows-1251 — набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Пользуется довольно большой популярностью. Была создана на базе кодировок, использовавшихся в ранних «самопальных» русификаторах Windows в 1990—1991 гг. совместно представителями «Параграфа», «Диалога» и российского отделения

Windows-1251 выгодно отличается от других 8‑битных кириллических кодировок (таких как CP866, KOI8-R и ISO-8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста (отсутствует только значок ударения); она также содержит все символы для близких к русскому языку языков: украинского, белорусского, сербского и болгарского.

Имеет два недостатка:

Содержание

Таблицы

Нижняя часть таблицы кодировки (латиница) полностью соответствует кодировке Юникоде.

Кодировка Windows-1251 (синоним CP1251)

. .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. Ђ
402
Ѓ
403

201A
ѓ
453

201E

2026

2020

2022

20AC

2030
Љ
409

2039
Њ
40A
Ќ
40C
Ћ
40B
Џ
40F
9. ђ
452

2018

2019

201C

201D

2022

2013

2014

2122
љ
459

203A
њ
45A
ќ
45C
ћ
45B
џ
45F
A. A0 Ў
40E
ў
45E
Ј
408
¤
A4
Ґ
490
¦
A6
§
A7
Ё
401
©
A9
Є
404
«
AB
¬
AC
­
AD
®
AE
Ї
407
B. °
B0
±
B1
І
406
і
456
ґ
491
µ
B5

B6
·
B7
ё
451

2116
є
454
»
BB
ј
458
Ѕ
405
ѕ
455
ї
457
C. А
410
Б
411
В
412
Г
413
Д
414
Е
415
Ж
416
З
417
И
418
Й
419
К
41A
Л
41B
М
41C
Н
41D
О
41E
П
41F
D. Р
420
С
421
Т
422
У
423
Ф
424
Х
425
Ц
426
Ч
427
Ш
428
Щ
429
Ъ
42A
Ы
42B
Ь
42C
Э
42D
Ю
42E
Я
42F
E. а
430
б
431
в
432
г
433
д
434
е
435
ж
436
з
437
и
438
й
439
к
43A
л
43B
м
43C
н
43D
о
43E
п
43F
F. р
440
с
441
т
442
у
443
ф
444
х
445
ц
446
ч
447
ш
448
щ
449
ъ
44A
ы
44B
ь
44C
э
44D
ю
44E
я
44F

Другие варианты

(Показаны только отличающиеся строки, поскольку всё остальное совпадает)

Кодировка CP1251-k (KazWin, казахская кодировка)

. .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. Ұ
4B0
Ғ
492

201A
ғ
493

201E

2026

2020

2022

20AC

2030
Ө
4E8

2039
Ң
4A2
Қ
49A
Һ
4BA
Ү
4AE
9. ұ
4B1

2018

2019

201C

201D

2022

2013

2014

2122
ө
4E9

203A
ң
4A3
қ
49B
һ
4BB
ү
4AF
A. A0 Ў
40E
ў
45E
Җ
496
¤
A4
Ҳ
4B2
¦
A6
§
A7
Ё
401
©
A9
Є
404
«
AB
¬
AC
­
AD
®
AE
Ї
407
B. °
B0
±
B1
І
406
і
456
ҳ
4B3
µ
B5

B6
·
B7
ё
451

2116
є
454
»
BB
җ
497
Ә
4D8
ә
4D9
ї
457

Кодировка Windows-1251 (чувашский вариант)

. .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. Ђ
402
Ѓ
403

201A
ѓ
453

201E

2026

2020

2022

20AC

2030
Љ
409

2039
Ӑ
4D0
Ӗ
4D6
Ҫ
4AA
Ӳ
4F2
9. ђ
452

2018

2019

201C

201D

2022

2013

2014

2122
љ
459

203A
ӑ
4D1
ӗ
4D7
ҫ
4AB
ӳ
4F3

Татарский вариант

Эта кодировка была официально принята в Татарстане в 1996 г.

. .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. Ә
4D8
Ѓ
403

201A
ѓ
453

201E

2026

2020

2022

20AC

2030
Ө
4E8

2039
Ү
4AE
Җ
496
Ң
4A2
Һ
4BA
9. ә
4D9

2018

2019

201C

201D

2022

2013

2014

2122
ө
4E9

203A
ү
4AF
җ
497
ң
4A3
һ
4BB

Внешние ссылки

Полезное

Смотреть что такое «Windows 1251» в других словарях:

Windows-1251 — (a.k.a. code page CP1251) is a popular 8 bit character encoding, designed to cover languages that use the Cyrillic alphabet such as Russian, Bulgarian, Serbian Cyrillic and other languages. It is the most widely used for encoding the Bulgarian,… … Wikipedia

Windows-1251 — набор символов и кодировка, являющаяся стандартной 8 битной кодировкой для всех русских версий Microsoft Windows. Пользуется довольно большой популярностью. Была создана на базе кодировок, использовавшихся в ранних «самопальных» русификаторах… … Википедия

Windows-1251 — (a.k.a. CP1251) es un popular juego de caracteres de 8 bits, diseñado para cubrir lenguajes que usan el alfabeto cirilico como son el lenguaje Ruso y otros lenguajes. Este es la codifiación más ampliamente usada para codificar Búlgaro, Serbio y… … Wikipedia Español

Windows-1251 — Windows Codepages 874 Thai 932 Japanisch 936 Vereinfachtes Chinesisch 949 Koreanisch 950 Traditionelles Chinesisch 1250 Mitteleuropäisch 1251 Kyrillisch 1252 … Deutsch Wikipedia

Windows (значения) — Windows: Microsoft Windows семейство проприетарных операционных систем корпорации Microsoft, ориентированных на применение графического интерфейса при управлении. Windows (клавиша) клавиша на клавиатурах ПК совместимых компьютеров,… … Википедия

Windows-1252 — ISO 8859 1 Latin 1, Westeuropäisch 2 Latin 2, Mitteleuropäisch 3 Latin 3, Südeuropäisch 4 Latin 4, Baltisch 5 Kyrillisch 6 Arabisch 7 Griechisch 8 … Deutsch Wikipedia

Windows-1252 — ISO/IEC 8859 1 (также известная как ISO 8859 1 и Latin 1) кодовая страница, предназначенная для западноевропейских языков; она базируется на символьном наборе популярных в прошлом терминалов ISO 8859. ISO 8859 1 кодировка, зарегистрированная… … Википедия

Windows code page — Windows code pages are sets of characters or code pages (known as character encodings in other operating systems) used in Microsoft Windows from the 1980s and 1990s. Windows code pages were gradually superseded when Unicode was implemented in… … Wikipedia

Windows Glyph List 4 — (сокр. WGL4, также известен как Общеевропейский набор символов англ. Pan European character set) определённый компанией Майкрософт набор из 652 типографических символов Юникода, призванный помочь разработчикам шрифтов в обеспечении… … Википедия

Windows-1254 — Windows 1254 кодовая страница, используемая Microsoft Windows для представления турецкого языка. Символы с кодами от A0 до FF совместимы с ISO 8859 9. Для современных приложений UTF 8 предпочтительней windows 1254. Таблица кодов Символы с… … Википедия

Источник

Отличие utf-8 и windows 1251

О разнице между двумя кодировками utf-8 и windows 1251

О кодировках utf-8 и windows 1251

Чем отличаются utf-8 и windows 1251

Количество байтов кириллицы в UTF-8 будет в 2 раза больше, чем 1). латиницы в UTF-8 и 2). латиницы + кириллицы в Windows- 1251 → пример

Главное отличие кодировок – это используемый набор символов. В UTF-8 гораздо больше количество символов возможно представить, чем в Windows- 1251. Кодировка Windows- 1251 однобайтовая, т.е. представить в ней можно только 255 символов. Для кириллицы, впрочем, этого вполне достаточно, именно поэтому однобайтовые кодировки до сих пор так массово применяются.

Что такое кодировка windows 1251

Windows-1251 – набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Пользуется довольно большой популярностью. Windows-1251 выгодно отличается от других 8‑битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста; она также содержит все символы для близких к русскому языку языков: украинского, белорусского, сербского и болгарского.

Что такое кодировка UTF-8

UTF-8 – в настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. Нашла широкое применение в операционных системах и веб-пространстве. Текст, состоящий только из символов Юникода с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт.

Символ в кодировке UTF-8 может кодироваться аж 6 байтами (пока используется только 4 и больше не планируется). Для русского языка, например, символ занимает 2 байта. Все символы, которые есть в таблице символов – поддерживаются этой кодировкой. К примеру, если вам нужен знак копирайта (©), то вам не нужно искать особый шрифт или же изображать символов в графическом формате.

Пример вывода текста в кодировках utf-8 латиницы

А если вы еще и поняли о чем идет речь, то вы вообще Эйнштейн! good, то и смысла особого вам читать дальше нет.

А для всех остальных продолжим.

Чем отличается текст в кодировках utf-8 и windows 1251

Как показать отличие двух кодировок!?

У нас на сайте основная кодировка utf-8, и мы не напрягаясь можем посмотреть, что творится с текстом в этой кодировке!

Нам понадобится какой-то текст на латинице:

И. нам нужно такое слово, чтобы имело одинаковое количество букв в слове, ну пусть это будет моё имя.

Далее нам потребуется функция var_dump.

И выведем прямо здесь вот такую конструкцию :

Что мы здесь можем прочитать!?

Что это строка, и что в ней 5 элементов.

Пример вывода текста в кодировках utf-8 кириллицы

Теперь, проделаем тоже самое со строкой на кириллице:

У нас все таже кодировка utf-8.

Но теперь нам понадобится текст на кириллице:

И выведем прямо здесь вот такую конструкцию :

И что мы здесь видим!?

Что количество элементов в строке 10. Если вы читали теорию внимательно, то вот вам показатель того, что одна буква состоит из двух символов, а латиницы это не касается.

Поэтому, и возникают проблемы с текстов в кодировке utf-8 кириллицы, множество функций тупо не работают.

Как пример. как-то я задолбался со strtolower в utf-8 для кириллицы, что решил написать собственную функцию strtolower, чтобы каждый раз не городить этажерку из нескольких функций.

Пример отличия в кодировках utf-8 и windows 1251

Если вы поленились прочитать два верхних пункта, то ещё раз выведем результаты вывода текста на латинице и на кириллице с одним количеством букв.

Результат вывода var_dump(‘Marat’); :
string(5) «Marat»
Результат var_dump(‘Марат’); :
string(10) «Марат»

Что делать, если функция для кириллицы на utf-8 не работают?

Поскольку я давно занимаюсь сайтами, то могу сказать, что на самом деле таких случаев не так много, когда нужна какая-то специальная функция для обработки кириллицы на utf-8.

Но если уж она возникала, то есть несколько вариантов решения!

Это функции с приставкой «mb_», естественно надо проверять, работает ли она у вас на хостинге.

Второй вариант, это написать собственную функцию, которая будет работать и для латиницы и кириллицы? как это я показал на функции strtolower

Пусть это будет функция str_split и её аналог mb_str_split

Источник

Вряд ли это сейчас сильно актуально, но может кому-то покажется интересным (или просто вспомнит былые годы).

Начну с небольшого экскурса в историю компьютера. Поскольку компьютер использовался для обработки информации, то он просто обязан представлять эту информацию в «человеческом» виде. Компьютер хранит информацию в виде чисел (байтов), а человек воспринимает символы (буквы, цифры, различные знаки). Значит, надо сделать сопоставление число <-> символ и задача будет решена. Сначала посчитаем, сколько символов нам надо (не забудем, что «мы» — американцы, использующие латинский алфавит). Нам надо 10 цифр + 26 заглавных букв английского алфавита + 26 строчных букв + математические знаки (хотя бы +-/*=><%) + знаки препинания (.,!?:;’” ) + различные скобки + служебные символы (_^%$@|) + 32 непечатных управляющих символов для работы с устройствами (в первую очередь, с телетайпом). В общем, 128 символов хватает «впритык» и этот стандартный набор символов «мы» назвали ASCII, т.е. «American Standard Code for Information Interchange»

Отлично, для 128 символов достаточно 7 бит. С другой стороны, в байте 8 бит и каналы связи 8-битные (забудем про «доисторические» времена, когда в байте и каналах бит было меньше). По 8-ми битному каналу будем передавать 7 бит кода символа и 1 бит контрольный (для повышения надежности и распознавания ошибок). И все было замечательно, пока компьютеры не стали использоваться в других странах (где латиница содержит больше 26 символов или вообще используется не латинский алфавит). Вместо того, чтобы всем поголовно освоить английский, жители СССР, Франции, Германии, Грузии и десятков других стран захотели, чтобы компьютер общался с ними на их родном языке. Пути были разные (в зависимости от остроты проблемы): одно дело, если к 26 символам латиницы надо добавить 2-3 национальных символа (можно пожертвовать какими-то специальными) и другое дело, когда надо «вклинить» кириллицу. Теперь «мы» — русские, стремящиеся «русифицировать» технику. Первыми были решения на основе замены строчных английских букв прописными русскими. Однако проблема в том, что русских букв (33) и они не влезают на 26 мест. Надо «уплотнить» и первой жертвой этого уплотнения пала буква Ё (еe просто повсеместно заменили на Е). Другой прием – вместо «русских» A,E,K,M,H,O,P,C,T стали использовать похожие английские (таких букв даже больше чем надо, но в некоторых парах прописные похожие, а строчные — не очень: Hh Tt Bb Kk Mm). Но все же «вклинили » и в результате весь вывод шел ПРОПИСНЫМИ БУКВАМИ, что неудобно и некрасиво, однако со временем привыкли. Второй прием – «переключение языка». Код русского символа совпадал с кодом английского символа, но устройство помнило, что сейчас оно в русском режиме и выводило символ кириллицы (а в английском режиме – латиницы). Режим переключался двумя служебными символами: Shift Out (SO, код 14) на русский и Shift IN (SI, код 15) на английский (интересно, что когда-то в печатных машинках использовалась двухцветная лента и SO приводил к физическому подъему ленты и в результате печать шла красным, а SI ставил ленту на место и печать снова шла черным). Текст с большими и маленькими буквами стал выглядеть вполне прилично. Все эти варианты более-менее работали на больших компьютерах, но после выпуска IBM PC началось массовое распространение персональных компьютеров по всему миру и надо было что-то решать централизовано.

Решением стала разработанная фирмой IBM технология кодовых страниц. К этому времени «контрольный символ» при передаче потерял свою актуальность и все 8-бит можно было использовать для кода символа. Вместо диапазона кодов 0-127 стал доступен диапазон 0-255. Кодовая страница (или кодировка)– это сопоставление кода из диапазона 0-255 некоему графическому образу (например, букве «Я» кириллицы или букве «омега» греческого). Нельзя сказать «символ с кодом 211 выглядит так», но можно сказать «символ с кодом 211 в кодовой странице CP1251 выглядит так: У, а в CP1253(греческая) выглядит так: Σ ». Во всех (или почти всех) кодовых таблица первые 128 кодов соответствуют таблице ASCII, только для первых 32 непечатных кодов IBM «назначила» свои картинки (которые показывается при выводе на экран монитора). В верхней части IBM разместила символы псевдографики (для рисования различных рамок), дополнительные символы латиницы, используемые в странах Западной Европы, некоторые математические символы и отдельные символы греческого алфавита. Эта кодовая страница получила название CP437 (IBM разработала и множество других кодовых страниц) и по умолчанию использовалась в видеоадаптерах. Кроме того, различные центры стандартизации (мировые и национальные) создали кодовые страницы для отображения национальных символов. Наши компьютерные «умы» предложили 2 варианта: основная кодировка ДОС и альтернативная кодировка ДОС. Основная предназначалась для работы везде, а альтернативная — в особых случаях, когда использование основной неудобно. Оказалось, что таких особых случаев большинство и основной (не по названию, а по использованию) стала именно «альтернативная» кодировка. Думаю, такой исход был ясен с самого начала для большинства специалистов (кроме «ученых мужей», оторванных от жизни). Дело в том, что в большинстве случаев использовались английские программы, которые «для красоты» активно использовали псевдографику для рисования различных рамок и тп. Типичные пример — суперпопулярный Нортон коммандер, стоящий тогда на большинстве компьютеров. Основная кодировка на местах псевдографики разместила русские символы и панели нортона выглядели просто ужасно (равно как и любой другой псевдографический вывод). А альтернативная кодировка бережно сохранила символы пседографики, использую для русских букв другие места. В результате и с Нортон коммандером и с другими программами вполне можно было работать. Андрей Чернов (широко известная личность в то время) разработал кодировку KOI8-R (КОИ8), пришедшую с «больших» компьютеров, где господствовал UNIX. Ее особенностью было то, что если у русского символа пропадал 8-й бит, то получившийся в результате «обрезания» английский символ будет созвучен исходному русскому. И вместо «Привет» получался «pRIVET», что не совсем то, но хотя бы читаемо. В результате в СССР на компьютерах использовали 3 различных кодовых страницы (основную, альтернативную и KOI8). И это не считая различных «вариаций», когда в альтернативной кодировке, скажем, отдельные символы (а то и строки) изменялись. От KOI8 тоже «отпочковывались» варианты — украинский, белорусский, таджикский, кавказский и др. Оборудование (принтеры, видеодаптеры) тоже надо было настраивать (или «прошивать») для работы со своими кодировками. Коммерсанты могли привезти дешевую партию принтеров (из эмиратов, например, по бартеру) а они не работали с русскими кодировками.

Тем не менее в целом кодовые страницы позволили решить проблему вывода национальных символов (устройство просто должно уметь работать с соответствующей кодовой страницей), но породили проблему множественности кодировок, когда почтовая программа отправляет данные в одной кодировке, а принимающая программа показывает их в другой. В результате пользователь видит так называемые «кракозябры» (вместо «привет» написано «ЏаЁўҐв» или «оПХБЕР»). Потребовались программы-перекодировщики, переводящие данные из одной кодировки в другую. Увы, порой письма при прохождении через почтовые серверы неоднократно автоматически перекодировались (или даже «обрезался» 8-й бит) и нужно было найти и выполнить всю цепочку обратных преобразований.

После массового перехода на Windows к трем кодовым страницам добавилась четвертая (Windows-1251 она же CP1251 она же ANSI ) и пятая (CP866 она же OEM или DOS). Не удивляйтесь — Windows для работы с кириллицей в консоли по-умолчанию использует кодировку CP866 (русские символы такие же как в «альтернативной кодировке», только некоторые спецсимволы отличаются), для других целей — кодировку CP1251. Почему Windows понадобилось две кодировки, неужели нельзя было обойтись одной? Увы, не получается: DOS-кодировка используется в именах файлов (тяжелое наследие DOS) и консольные команды типа dir, copy должны правильно показывать и правильно обрабатывать досовские имена файлов. С другой стороны, в этой кодировке много кодов отведено символам псевдографики (различным рамкам и т.п.), а Windows работает в графическом режиме и ей (а точнее, windows-приложениям) не нужны символы псевдографики (но нужны занятые ими коды, которые в CP1251 использованы для других полезных символов). Пять кириллических кодировок поначалу еще больше усугубили ситуацию, но со временем наиболее популярными стали Windows-1251 и KOI8, а досовскими просто стали меньше пользоваться. Еще при использовании Windows стало неважно, какая кодировка в видеоадаптере (только изредка, до загрузки Windows в диагностических сообщениях можно видеть «кракозябры»).

Решение проблемы кодировок пришло, когда повсеместно стала внедряться система Unicode (и для персональных ОС и для серверов). Unicode каждому национальному символу ставит в соответствие раз и навсегда закрепленное за ним 20-ти битовое число («точку» в кодовом пространстве Unicode, причем чаще всего хватает 16 бит, поскольку 20-битные коды используются для редких символов и иероглифов), поэтому нет необходимости перекодировать (подробнее об Unicode см следующую запись в журнале). Теперь для любой пары <код байта>+<кодовая страница> можно определить соответствующий ей код в Unicode (сейчас в кодовых страницах для каждого 8-битного кода показывается 16-битный код Unicode) и потом при необходимости вывести этот символ для любой кодовой страницы, где он присутствует. В настоящее время проблема кодировок и перекодировок для пользователей практически исчезла, но все же изредка приходят письма, где либо тема письма либо содержание «не в той» кодировке.

Интересно, что примерно год назад проблема кодировок ненадолго всплыла при «наезде» ФАС на сотовых операторов, мол те дискриминируют русскоязычных пользователей, поскольку за передачу кириллицы берут больше. Это объясняется техническим решением, выбранным разработчиком протокола SMS связи. Если бы его россияне разработали, они бы, возможно, отдали приоритет кириллице. В указанной статье «начальник управления контроля транспорта и связи Дмитрий Рутенберг отметил, что существуют и восьмибитные кодировки для кириллицы, которые могли бы использовать операторы.» Во как — на улице 21-й век, Unicode шагает по миру, а господин Рутенберг тянет нас в начало 90-х, когда шла «война кодировок» и проблема перекодировок стояла во весь рост. Интересно, в какой кодировке должен получить СМС Вася Пупкин, пользующийся финским телефоном, находящийся в Турции на отдыхе, от жены с корейским телефоном, отправляющей СМС из Казахстана? А от своего французского компаньона (с японским телефоном), находящегося в Испании? Думаю, никакой начальник ответа на этот вопрос дать не сможет. К счастью, это «экономное» предложение не воплотилось в жизнь.

Юный читатель может спросить — а что помешало сразу использовать Unicode, зачем были придуманы эти заморочки с кодовыми страницами? Думаю, дело в финансовой стороне проблемы. Unicode требует в 2 раза больше памяти, а память стоит денег (и дисковая и ОЗУ). Стал бы американец покупать компьютер на 1-2 тыс дороже из-за того, что «теперь новая ОС требует больше памяти, но позволяет без проблем работать с русским, европейскими, арабскими языками»? Боюсь, простой англоязычный покупатель воспринял бы такой аргумент «неадекватно» (и обратился бы к другим производителям).

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня мы поговорим с вами про то, откуда берутся кракозябры на сайте и в программах, какие кодировки текста существуют и какие из них следует использовать. Подробно рассмотрим историю их развития, начиная от базовой ASCII, а также ее расширенных версий CP866, KOI8-R, Windows 1251 и заканчивая современными кодировками консорциума Юникод UTF 16 и 8.

Кодировка русского языка UTF 8 самая часто встречаемая

Кому-то эти сведения могут показаться излишними, но знали бы вы, сколько мне приходит вопросов именно касаемо вылезших кракозябров (не читаемого набора символов). Теперь у меня будет возможность отсылать всех к тексту этой статьи и самостоятельно отыскивать свои косяки. Ну что же, приготовьтесь впитывать информацию и постарайтесь следить за ходом повествования.

ASCII — базовая кодировка текста для латиницы

Развитие кодировок текстов происходило одновременно с формированием отрасли IT, и они за это время успели претерпеть достаточно много изменений. Исторически все начиналось с довольно-таки не благозвучной в русском произношении EBCDIC, которая позволяла кодировать буквы латинского алфавита, арабские цифры и знаки пунктуации с управляющими символами.

Но все же отправной точкой для развития современных кодировок текстов стоит считать знаменитую ASCII (American Standard Code for Information Interchange, которая по-русски обычно произносится как «аски»). Она описывает первые 128 символов из наиболее часто используемых англоязычными пользователями — латинские буквы, арабские цифры и знаки препинания.

Еще в эти 128 знаков, описанных в ASCII, попадали некоторые служебные символы навроде скобок, решеток, звездочек и т.п. Собственно, вы сами можете увидеть их:

Пример кодировки ASCII

Именно эти 128 символов из первоначального вариант ASCII стали стандартом, и в любой другой кодировке вы их обязательно встретите и стоять они будут именно в таком порядке.

Но дело в том, что с помощью одного байта информации можно закодировать не 128, а целых 256 различных значений (двойка в степени восемь равняется 256), поэтому вслед за базовой версией Аски появился целый ряд расширенных кодировок ASCII, в которых можно было кроме 128 основных знаков закодировать еще и символы национальной кодировки (например, русской).

Тут, наверное, стоит еще немного сказать про системы счисления, которые используются при описании. Во-первых, как вы все знаете, компьютер работает только с числами в двоичной системе, а именно с нулями и единицами («булева алгебра», если кто проходил в институте или в школе). Один байт состоит из восьми бит, каждый из которых представляет из себя двойку в степени, начиная с нулевой, и до двойки в седьмой:

Преобразование двоичных чисел в шестнадцатиричные при кодировании

Не трудно понять, что всех возможных комбинаций нулей и единиц в такой конструкции может быть только 256. Переводить число из двоичной системы в десятичную довольно просто. Нужно просто сложить все степени двойки, над которыми стоят единички.

В нашем примере это получается 1 (2 в степени ноль) плюс 8 (два в степени 3), плюс 32 (двойка в пятой степени), плюс 64 (в шестой), плюс 128 (в седьмой). Итого получает 233 в десятичной системе счисления. Как видите, все очень просто.

Но если вы присмотритесь к таблице с символами ASCII, то увидите, что они представлены в шестнадцатеричной кодировке. Например, «звездочка» соответствует в Аски шестнадцатеричному числу 2A. Наверное, вам известно, что в шестнадцатеричной системе счисления используются кроме арабских цифр еще и латинские буквы от A (означает десять) до F (означает пятнадцать).

Ну так вот, для перевода двоичного числа в шестнадцатеричное прибегают к следующему простому и наглядному способу. Каждый байт информации разбивают на две части по четыре бита, как показано на приведенном выше скриншоте. Т.о. в каждой половинке байта двоичным кодом можно закодировать только шестнадцать значений (два в четвертой степени), что можно легко представить шестнадцатеричным числом.

Причем, в левой половине байта считать степени нужно будет опять начиная с нулевой, а не так, как показано на скриншоте. В результате, путем нехитрых вычислений, мы получим, что на скриншоте закодировано число E9. Надеюсь, что ход моих рассуждений и разгадка данного ребуса вам оказались понятны. Ну, а теперь продолжим, собственно, говорить про кодировки текста.

Расширенные версии Аски — кодировки CP866 и KOI8-R с псевдографикой

Итак, мы с вами начали говорить про ASCII, которая являлась как бы отправной точкой для развития всех современных кодировок (Windows 1251, юникод, UTF 8).

Изначально в нее было заложено только 128 знаков латинского алфавита, арабских цифр и еще чего-то там, но в расширенной версии появилась возможность использовать все 256 значений, которые можно закодировать в одном байте информации. Т.е. появилась возможность добавить в Аски символы букв своего языка.

Тут нужно будет еще раз отвлечься, чтобы пояснить — зачем вообще нужны кодировки текстов и почему это так важно. Символы на экране вашего компьютера формируются на основе двух вещей — наборов векторных форм (представлений) всевозможных знаков (они находятся в файлах со шрифтами, которые установлены на вашем компьютере) и кода, который позволяет выдернуть из этого набора векторных форм (файла шрифта) именно тот символ, который нужно будет вставить в нужное место.

Понятно, что за сами векторные формы отвечают шрифты, а вот за кодирование отвечает операционная система и используемые в ней программы. Т.е. любой текст на вашем компьютере будет представлять собой набор байтов, в каждом из которых закодирован один единственный символ этого самого текста.

Программа, отображающая этот текст на экране (текстовый редактор, браузер и т.п.), при разборе кода считывает кодировку очередного знака и ищет соответствующую ему векторную форму в нужном файле шрифта, который подключен для отображения данного текстового документа. Все просто и банально.

Значит, чтобы закодировать любой нужный нам символ (например, из национального алфавита), должно быть выполнено два условия — векторная форма этого знака должна быть в используемом шрифте и этот символ можно было бы закодировать в расширенных кодировках ASCII в один байт. Поэтому таких вариантов существует целая куча. Только лишь для кодирования символов русского языка существует несколько разновидностей расширенной Аски.

Например, изначально появилась CP866, в которой была возможность использовать символы русского алфавита и она являлась расширенной версией ASCII.

Т.е. ее верхняя часть полностью совпадала с базовой версией Аски (128 символов латиницы, цифр и еще всякой лабуды), которая представлена на приведенном чуть выше скриншоте, а вот уже нижняя часть таблицы с кодировкой CP866 имела указанный на скриншоте чуть ниже вид и позволяла закодировать еще 128 знаков (русские буквы и всякая там псевдографика):

Русская кодировка CP866

Видите, в правом столбце цифры начинаются с 8, т.к. числа с 0 до 7 относятся к базовой части ASCII (см. первый скриншот). Т.о. русская буква «М» в CP866 будет иметь код 9С (она находится на пересечении соответствующих строки с 9 и столбца с цифрой С в шестнадцатеричной системе счисления), который можно записать в одном байте информации, и при наличии подходящего шрифта с русскими символами эта буква без проблем отобразится в тексте.

Откуда взялось такое количество псевдографики в CP866? Тут все дело в том, что эта кодировка для русского текста разрабатывалась еще в те мохнатые года, когда не было такого распространения графических операционных систем как сейчас. А в Досе, и подобных ей текстовых операционках, псевдографика позволяла хоть как-то разнообразить оформление текстов и поэтому ею изобилует CP866 и все другие ее ровесницы из разряда расширенных версий Аски.

CP866 распространяла компания IBM, но кроме этого для символов русского языка были разработаны еще ряд кодировок, например, к этому же типу (расширенных ASCII) можно отнести KOI8-R:

Пример кодировки русского языка KOI8-R

Принцип ее работы остался тот же самый, что и у описанной чуть ранее CP866 — каждый символ текста кодируется одним единственным байтом. На скриншоте показана вторая половина таблицы KOI8-R, т.к. первая половина полностью соответствует базовой Аски, которая показана на первом скриншоте в этой статье.

Среди особенностей кодировки KOI8-R можно отметить то, что русские буквы в ее таблице идут не в алфавитном порядке, как это, например, сделали в CP866.

Если посмотрите на самый первый скриншот (базовой части, которая входит во все расширенные кодировки), то заметите, что в KOI8-R русские буквы расположены в тех же ячейках таблицы, что и созвучные им буквы латинского алфавита из первой части таблицы. Это было сделано для удобства перехода с русских символов на латинские путем отбрасывания всего одного бита (два в седьмой степени или 128).

Windows 1251 — современная версия ASCII и почему вылезают кракозябры

Дальнейшее развитие кодировок текста было связано с тем, что набирали популярность графические операционные системы и необходимость использования псевдографики в них со временем пропала. В результате возникла целая группа, которая по своей сути по-прежнему являлись расширенными версиями Аски (один символ текста кодируется всего одним байтом информации), но уже без использования символов псевдографики.

Они относились к так называемым ANSI кодировкам, которые были разработаны американским институтом стандартизации. В просторечии еще использовалось название кириллица для варианта с поддержкой русского языка. Примером такой может служить Windows 1251.

Она выгодно отличалась от используемых ранее CP866 и KOI8-R тем, что место символов псевдографики в ней заняли недостающие символы русской типографики (окромя знака ударения), а также символы, используемые в близких к русскому славянских языках (украинскому, белорусскому и т.д.):

Windows 1251

Из-за такого обилия кодировок русского языка, у производителей шрифтов и производителей программного обеспечения постоянно возникала головная боль, а у нас с вам, уважаемые читатели, зачастую вылезали те самые пресловутые кракозябры, когда происходила путаница с используемой в тексте версией.

Очень часто они вылезали при отправке и получении сообщений по электронной почте, что повлекло за собой создание очень сложных перекодировочных таблиц, которые, собственно, решить эту проблему в корне не смогли, и зачастую пользователи для переписки использовали транслит латинских букв, чтобы избежать пресловутых кракозябров при использовании русских кодировок подобных CP866, KOI8-R или Windows 1251.

По сути, кракозябры, вылазящие вместо русского текста, были результатом некорректного использования кодировки данного языка, которая не соответствовала той, в которой было закодировано текстовое сообщение изначально.

Допустим, если символы, закодированные с помощью CP866, попробовать отобразить, используя кодовую таблицу Windows 1251, то эти самые кракозябры (бессмысленный набор знаков) и вылезут, полностью заменив собой текст сообщения.

Пример кракозябров

Аналогичная ситуация очень часто возникает при создании сайтов на WordPress и Joomla, форумов или блогов, когда текст с русскими символами по ошибке сохраняется не в той кодировке, которая используется на сайте по умолчанию, или же не в том текстовом редакторе, который добавляет в код отсебятину не видимую невооруженным глазом.

В конце концов такая ситуация с множеством кодировок и постоянно вылезающими кракозябрами многим надоела, появились предпосылки к созданию новой универсальной вариации, которая бы заменила собой все существующие и решила бы, наконец, на корню проблему с появлением не читаемых текстов. Кроме этого существовала проблема языков подобных китайскому, где символов языка было гораздо больше, чем 256.

Юникод (Unicode) — универсальные кодировки UTF 8, 16 и 32

Эти тысячи знаков языковой группы юго-восточной Азии никак невозможно было описать в одном байте информации, который выделялся для кодирования символов в расширенных версиях ASCII. В результате был создан консорциум под названием Юникод (Unicode — Unicode Consortium) при сотрудничестве многих лидеров IT индустрии (те, кто производит софт, кто кодирует железо, кто создает шрифты), которые были заинтересованы в появлении универсальной кодировки текста.

Первой вариацией, вышедшей под эгидой консорциума Юникод, была UTF 32. Цифра в названии кодировки означает количество бит, которое используется для кодирования одного символа. 32 бита составляют 4 байта информации, которые понадобятся для кодирования одного единственного знака в новой универсальной кодировке UTF.

В результате чего, один и тот же файл с текстом, закодированный в расширенной версии ASCII и в UTF-32, в последнем случае будет иметь размер (весить) в четыре раза больше. Это плохо, но зато теперь у нас появилась возможность закодировать с помощью ЮТФ число знаков, равное двум в тридцать второй степени (миллиарды символов, которые покроют любое реально необходимое значение с колоссальным запасом).

Но многим странам с языками европейской группы такое огромное количество знаков использовать в кодировке вовсе и не было необходимости, однако при задействовании UTF-32 они ни за что ни про что получали четырехкратное увеличение веса текстовых документов, а в результате и увеличение объема интернет трафика и объема хранимых данных. Это много, и такое расточительство себе никто не мог позволить.

В результате развития Юникода появилась UTF-16, которая получилась настолько удачной, что была принята по умолчанию как базовое пространство для всех символов, которые у нас используются. Она использует два байта для кодирования одного знака. Давайте посмотрим, как это дело выглядит.

В операционной системе Windows вы можете пройти по пути «Пуск» — «Программы» — «Стандартные» — «Служебные» — «Таблица символов». В результате откроется таблица с векторными формами всех установленных у вас в системе шрифтов. Если вы выберете в «Дополнительных параметрах» набор знаков Юникод, то сможете увидеть для каждого шрифта в отдельности весь ассортимент входящих в него символов.

Кстати, щелкнув по любому из них, вы сможете увидеть его двухбайтовый код в формате UTF-16, состоящий из четырех шестнадцатеричных цифр:

Юникод в формате UTF-16

Сколько символов можно закодировать в UTF-16 с помощью 16 бит? 65 536 (два в степени шестнадцать), и именно это число было принято за базовое пространство в Юникоде. Помимо этого существуют способы закодировать с помощью нее и около двух миллионов знаков, но ограничились расширенным пространством в миллион символов текста.

Но даже эта удачная версия кодировки Юникода не принесла особого удовлетворения тем, кто писал, допустим, программы только на английском языке, ибо у них, после перехода от расширенной версии ASCII к UTF-16, вес документов увеличивался в два раза (один байт на один символ в Аски и два байта на тот же самый символ в ЮТФ-16).

Вот именно для удовлетворения всех и вся в консорциуме Unicode было решено придумать кодировку переменной длины. Ее назвали UTF-8. Несмотря на восьмерку в названии, она действительно имеет переменную длину, т.е. каждый символ текста может быть закодирован в последовательность длиной от одного до шести байт.

На практике же в UTF-8 используется только диапазон от одного до четырех байт, потому что за четырьмя байтами кода ничего уже даже теоретически не возможно представить. Все латинские знаки в ней кодируются в один байт, так же как и в старой доброй ASCII.

Что примечательно, в случае кодирования только латиницы, даже те программы, которые не понимают Юникод, все равно прочитают то, что закодировано в ЮТФ-8. Т.е. базовая часть Аски просто перешла в это детище консорциума Unicode.

Кириллические же знаки в UTF-8 кодируются в два байта, а, например, грузинские — в три байта. Консорциум Юникод после создания UTF 16 и 8 решил основную проблему — теперь у нас в шрифтах существует единое кодовое пространство. И теперь их производителям остается только исходя из своих сил и возможностей заполнять его векторными формами символов текста. Сейчас в наборы даже эмодзи смайлики добавляют.

В приведенной чуть выше «Таблице символов» видно, что разные шрифты поддерживают разное количество знаков. Некоторые насыщенные символами Юникода шрифты могут весить очень прилично. Но зато теперь они отличаются не тем, что они созданы для разных кодировок, а тем, что производитель шрифта заполнил или не заполнил единое кодовое пространство теми или иными векторными формами до конца.

Кракозябры вместо русских букв — как исправить

Давайте теперь посмотрим, как появляются вместо текста кракозябры или, другими словами, как выбирается правильная кодировка для русского текста. Собственно, она задается в той программе, в которой вы создаете или редактируете этот самый текст, или же код с использованием текстовых фрагментов.

Для редактирования и создания текстовых файлов лично я использую очень хороший, на мой взгляд, Html и PHP редактор Notepad++. Впрочем, он может подсвечивать синтаксис еще доброй сотни языков программирования и разметки, а также имеет возможность расширения с помощью плагинов. Читайте подробный обзор этой замечательной программы по приведенной ссылке.

В верхнем меню Notepad++ есть пункт «Кодировки», где у вас будет возможность преобразовать уже имеющийся вариант в тот, который используется на вашем сайте по умолчанию:

Как исправить кракозябры в кодировке utf-8

В случае сайта на Joomla 1.5 и выше, а также в случае блога на WordPress следует во избежании появления кракозябров выбирать вариант UTF 8 без BOM. А что такое приставка BOM?

Дело в том, что когда разрабатывали кодировку ЮТФ-16, зачем-то решили прикрутить к ней такую вещь, как возможность записывать код символа, как в прямой последовательности (например, 0A15), так и в обратной (150A). А для того, чтобы программы понимали, в какой именно последовательности читать коды, и был придуман BOM (Byte Order Mark или, другими словами, сигнатура), которая выражалась в добавлении трех дополнительных байтов в самое начало документов.

В кодировке UTF-8 никаких BOM предусмотрено в консорциуме Юникод не было и поэтому добавление сигнатуры (этих самых пресловутых дополнительных трех байтов в начало документа) некоторым программам просто-напросто мешает читать код. Поэтому мы всегда при сохранении файлов в ЮТФ должны выбирать вариант без BOM (без сигнатуры). Таким образом, вы заранее обезопасите себя от вылезания кракозябров.

Что примечательно, некоторые программы в Windows не умеют этого делать (не умеют сохранять текст в ЮТФ-8 без BOM), например, все тот же пресловутый Блокнот Windows. Он сохраняет документ в UTF-8, но все равно добавляет в его начало сигнатуру (три дополнительных байта). Причем эти байты будут всегда одни и те же — читать код в прямой последовательности. Но на серверах из-за этой мелочи может возникнуть проблема — вылезут кракозябры.

Поэтому ни в коем случае не пользуйтесь обычным блокнотом Windows для редактирования документов вашего сайта, если не хотите появления кракозябров. Лучшим и наиболее простым вариантом я считаю уже упомянутый редактор Notepad++, который практически не имеет недостатков и состоит из одних лишь достоинств.

В Notepad ++ при выборе кодировки у вас будет возможность преобразовать текст в кодировку UCS-2, которая по своей сути очень близка к стандарту Юникод. Также в Нотепаде можно будет закодировать текст в ANSI, т.е. применительно к русскому языку это будет уже описанная нами чуть выше Windows 1251. Откуда берется эта информация?

Она прописана в реестре вашей операционной системы Windows — какую кодировку выбирать в случае ANSI, какую выбирать в случае OEM (для русского языка это будет CP866). Если вы установите на своем компьютере другой язык по умолчанию, то и эти кодировки будут заменены на аналогичные из разряда ANSI или OEM для того самого языка.

После того, как вы в Notepad++ сохраните документ в нужной вам кодировке или же откроете документ с сайта для редактирования, то в правом нижнем углу редактора сможете увидеть ее название:

Как узнать тип кодировки текстового документа

Чтобы избежать кракозябров, кроме описанных выше действий, будет полезным прописать в его шапке исходного кода всех страниц сайта информацию об этой самой кодировке, чтобы на сервере или локальном хосте не возникло путаницы.

Вообще, во всех языках гипертекстовой разметки кроме Html используется специальное объявление xml, в котором указывается кодировка текста.

<?xml version="1.0" encoding="windows-1251"?>

Прежде, чем начать разбирать код, браузер узнает, какая версия используется и как именно нужно интерпретировать коды символов этого языка. Но что примечательно, в случае, если вы сохраняете документ в принятом по умолчанию юникоде, то это объявление xml можно будет опустить (кодировка будет считаться UTF-8, если нет BOM или ЮТФ-16, если BOM есть).

В случае же документа языка Html для указания кодировки используется элемент Meta, который прописывается между открывающим и закрывающим тегом Head:

<head>
...
<meta charset="utf-8">
...
</head>

Эта запись довольно сильно отличается от принятой в стандарте в Html 4.01, но полностью соответствует новому внедряемому потихоньку стандарту Html 5, и она будет стопроцентно правильно понята любыми используемыми на текущий момент браузерами.

По идее, элемент Meta с указание кодировки Html документа лучше будет ставить как можно выше в шапке документа, чтобы на момент встречи в тексте первого знака не из базовой ANSI (которые правильно прочитаются всегда и в любой вариации) браузер уже должен иметь информацию о том, как интерпретировать коды этих символов.

Кодовые страницы Windows представляют собой наборы символов или кодовые страницы (известные как символ кодировки в других операционных системах), используемые в Microsoft Windows с 1980-х и 1990-х годов. Кодовые страницы Windows были постепенно заменены, когда Unicode был реализован в Windows, хотя они по-прежнему поддерживаются как в Windows, так и на других платформах, и по-прежнему применяются при использовании ярлыков Alt code.

В системах Windows есть две группы кодовых страниц: OEM и собственные кодовые страницы Windows («ANSI»). Кодовые страницы в обеих этих группах являются кодовыми страницами расширенного ASCII.

Содержание

  • 1 Кодовая страница ANSI
  • 2 Кодовая страница OEM
  • 3 История
    • 3.1 UTF-8, UTF-16
  • 4 Список
    • 4.1 Windows-125x series
    • 4.2 Кодовые страницы DOS
    • 4.3 Восточноазиатские многобайтовые кодовые страницы
    • 4.4 Кодовые страницы EBCDIC
    • 4.5 Кодовые страницы, связанные с Unicode
    • 4.6 Кодовые страницы совместимости с Macintosh
    • 4.7 Кодовые страницы ISO 8859
    • 4.8 Кодовые страницы ITU-T
    • 4.9 Кодовые страницы KOI8
    • 4.10 Другие кодовые страницы
  • 5 Проблемы, возникающие при использовании кодовых страниц
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки

Кодовая страница ANSI

Windows-125x series

Псевдоним (а) ANSI (неправильное название)
Стандарт Стандарт кодирования WHATWG
Расширяет US -ASCII
Преемник ISO 8859
Преемник Unicode. UTF-16 (в Win32 API)
  • v
  • t

кодовые страницы ANSI (официально называемые «Windows code» страницы «после того, как Microsoft приняла первый термин как неправильное) используются для приложений, не поддерживающих Unicode (например, ориентированных на байт ), использующих графический пользовательский интерфейс в системе Windows tems. «ANSI» — неправильное название, потому что поведение не совсем соответствует стандарту ANSI и потому что в эти 8-битные кодовые страницы включены некоторые кодировки, отличные от стандарта ANSI.

Большинство устаревших ANSI «кодовые страницы имеют номера кодовых страниц в шаблоне 125x. Однако 874 (тайский) и многобайтовые кодовые страницы ANSI Восточной Азии (932, 936, 949, 950 ), все из которых также используются как кодовые страницы OEM, пронумерованы для соответствия аналогичным (но не идентичным) кодировкам IBM. Хотя кодовая страница 1258 также используется как кодовая страница OEM, она является оригинальной для Microsoft, а не расширением существующей кодировки. IBM присвоила свои собственные, разные номера для вариантов Microsoft, они приведены для справки в списках ниже, где это применимо.

Все кодовые страницы Windows 125x, а также 874 и 936, помечены Internet Assigned Numbers Authority (IANA) как «Windows-number», хотя «Windows-936» рассматривается как синоним «GBK «. Кодовая страница Windows 932 вместо этого помечена как «Windows-31J».

Кодовые страницы ANSI Windows, и особенно кодовая страница 1252, были так называемыми, поскольку они якобы были основаны на представленных черновиках или предназначен для ANSI. Однако ANSI и ISO не стандартизировали ни одну из этих кодовых страниц. Вместо этого они либо:

  • Надмножества стандартных наборов, таких как ISO 8859 и различных национальных стандартов (например, Windows-1252 vs. ISO-8859- 1 ),
  • Основные их модификации (делающие их несовместимыми в разной степени, например, Windows-1250 vs. ISO-8859-2 )
  • Отсутствие параллельного кодирования (например, Windows- 1257 vs. ISO-8859-4 ; ISO-8859-13 был представлен намного позже). Кроме того, Windows-1251 не следует ISO -стандартизированный ISO-8859-5, ни преобладающий в то время KOI-8.

Microsoft присвоила около двенадцати из типографики и деловых символов (включая, в частности, знак евро, €) в CP1252 до кодовых точек 0x80–0x9F, которые в ISO 8859 присвоены контрольным кодам C1. Эти присвоения также присутствуют во многих другие кодовые страницы ANSI / Windows с теми же кодовыми точками. Windows не использовала управляющие коды C1, поэтому это решение не имело прямого влияния на пользователей Windows. Тем не менее, если эта информация была включена в файл, переданный на совместимую со стандартами платформу, такую ​​как Unix или MacOS, она была невидимой и потенциально опасной.

Кодовая страница OEM

Кодовые страницы OEM (производитель оригинального оборудования ) используются приложениями консоли Win32 и с помощью виртуальной DOS и может считаться пережитком от DOS и исходной архитектуры IBM PC. Отдельный набор кодовых страниц был реализован не только из-за совместимости, но и потому, что шрифты аппаратного обеспечения VGA (и потомков) предлагают кодировку символов рисования линий для совместимости с кодовая страница 437. Большинство кодовых страниц OEM имеют много общих кодовых точек, особенно для небуквенных символов, со второй (не ASCII) половиной CP437.

Типичная кодовая страница OEM во второй половине даже приблизительно не похожа ни на одну кодовую страницу ANSI / Windows. Тем не менее, две однобайтовые кодовые страницы с фиксированной шириной (874 для тайского и 1258 для вьетнамского ) и четыре многобайтовых кодовых страницы CJK (932, 936, 949, 950 ) используются как кодовые страницы OEM и ANSI. В кодовой странице 1258 используется комбинация диакритических знаков, поскольку вьетнамский требует более 128 буквенно-диакритических комбинаций. Это отличается от VISCII, который заменяет некоторые из управляющих кодов C0 (то есть ASCII).

История

Первоначально компьютерные системы и языки системного программирования не делали различия между символами и байтами : для сегментарных скриптов используется в большинстве стран Африки, Америки, Южной и Юго-Восточной Азии, Ближнего Востока и Европы, для символа требуется всего один байт, но для используемых идеографических наборов требуется два или более байта в остальном мире. Впоследствии это привело к большой путанице. Программное обеспечение и системы Microsoft, предшествующие строке Windows NT, являются примерами этого, поскольку они используют кодовые страницы OEM и ANSI, которые не делают различия.

С конца 1990-х годов программное обеспечение и системы приняли Unicode в качестве предпочтительного формата хранения; эта тенденция была улучшена за счет повсеместного принятия XML, который обеспечивает более адекватный механизм для маркировки используемой кодировки. Последние продукты Microsoft и программные интерфейсы приложений внутренне используют Unicode, но многие приложения и API-интерфейсы продолжают использовать кодировку по умолчанию «локали» компьютера при чтении и записи текстовых данных в файлы или стандартный вывод. Таким образом, файлы могут быть разборчивыми и разборчивыми в одной части мира, но неразборчивыми моджибаке в другой.

UTF-8, UTF-16

Microsoft решила принять 16-битную (двухбайтовую) систему UTF-16 для всех своих операционных систем. начиная с Windows NT. Этот метод уникальным образом кодирует все символы Юникода в базовой многоязычной плоскости и 32-битный (четырехбайтовый) код для других, но остальная часть отрасли выбрала UTF-8 (который использует один байт для 7-битного набора символов ASCII, два или три байта для других символов в BMP и четыре байта для остатка). Начиная с Windows 10 версии 1803, компьютеры Windows могут быть настроены так, чтобы разрешить UTF-8 в качестве кодовой страницы «ANSI» и OEM.

Список

Существуют следующие кодовые страницы Windows :

Windows-125x series

Все эти девять кодовых страниц являются расширенными кодировками ASCII 8-битными SBCS и были разработаны Microsoft для использования в качестве кодовых страниц ANSI в Windows. Обычно они известны под своими зарегистрированными в IANA именами как windows-, но иногда их также называют cp, «cp» для «кодовой страницы». Все они используются как кодовые страницы ANSI; Windows-1258 также используется как кодовая страница OEM.

ID Описание Отношение к ISO 8859 или другим установленным кодировкам
1250 Latin 2 / Центральноевропейская Аналогично ISO-8859-2, но перемещает несколько символов, включая несколько букв.
1251 Кириллица Несовместима как с ISO-8859-5, так и с KOI-8.
1252 Latin 1 / Western European Расширенный набор ISO-8859-1 (без элементов управления C1). Буквенный репертуар, соответственно, аналогичен CP850.
1253 Греческий Аналогичен ISO 8859-7, но перемещает несколько символов, включая букву.
1254 Турецкий Расширенный набор ISO 8859-9 (без элементов управления C1).
1255 Иврит Практически расширенный набор ISO 8859-8, но с двумя несовместимыми изменениями пунктуации.
1256 арабский Несовместимо с ISO 8859-6 ; скорее OEM Кодовая страница 708 является расширенным набором ISO 8859-6 (ASMO 708).
1257 Балтийский Не ISO 8859-4 ; более поздний ISO 8859-13 тесно связан, но с некоторыми отличиями в доступной пунктуации.
1258 Вьетнамский (также OEM) Не относится к VSCII или VISCII, использует меньшее количество базовых символов с комбинированными диакритическими знаками.

Кодовые страницы DOS

Они также основаны на ASCII. Большинство из них включены для использования в качестве кодовых страниц OEM; кодовая страница 874 также используется как кодовая страница ANSI.

  • 437 — IBM PC US, 8-битный SBCS расширенный ASCII. Известная как OEM-US, кодировка основного встроенного шрифта видеокарт VGA.
  • 708 — арабский, расширенный ISO 8859-6 (ASMO 708)
  • 720 — арабский, символы рисования прямоугольников остаются на их обычном месте
  • 737 — «MS-DOS Greek». Сохраняет все символы рисования прямоугольников. Популярнее, чем 869.
  • 775 — «MS-DOS Baltic Rim»
  • 850 — «MS-DOS Latin 1». Полный (реорганизованный) репертуар ISO 8859-1.
  • 852 — «MS-DOS Latin 2»
  • 855 — «MS-DOS Cyrillic». В основном используется для южнославянских языков. Включает (реорганизованный) репертуар ISO-8859-5. Не путать с cp866.
  • 857 — «MS-DOS Turkish»
  • 858 — Западноевропейский со знаком евро
  • 860 — «MS-DOS Portuguese»
  • 861 — «MS-DOS исландский»
  • 862 — «MS-DOS Hebrew»
  • 863 — «MS-DOS French Canada»
  • 864 — арабский
  • 865 — «MS-DOS Nordic»
  • 866 — «MS-DOS Cyrillic Russian», cp866. Единственная кодовая страница исключительно OEM (а не ANSI или оба), включенная в качестве устаревшей кодировки в WHATWG Encoding Standard для HTML5.
  • 869 — «MS-DOS Greek 2», IBM869. Полный (реорганизованный) репертуар ISO 8859-7.
  • 874 — Тайский, также используемый в качестве кодовой страницы ANSI, расширяет ISO 8859-11 (и, следовательно, TIS-620 ) с несколькими дополнительными символами из Windows-1252. Соответствует кодовой странице IBM 1162 (IBM-874 аналогична, но имеет другие расширения).

Многобайтовые кодовые страницы восточноазиатских стран

Часто они лишь частично совпадают с кодовыми страницами IBM с тем же номером: кодовые страницы 932, 936 и 949 отличаются от кодовых страниц IBM с тем же номером, тогда как Windows-951, как часть кладжа, не связана с IBM-951. Эквивалентные кодовые страницы IBM приведены во втором столбце. Кодовые страницы 932, 936, 949 и 950/951 используются в качестве кодовых страниц как ANSI, так и OEM в рассматриваемых регионах.

ID IBM Equivalent Язык Кодировка Используйте
932 943 Японский Shift JIS (вариант Microsoft) ANSI / OEM (Япония)
936 1386 Китайский (упрощенный) GBK ANSI / OEM (КНР, Сингапур)
949 1363 Корейский Унифицированный код хангыль ANSI / OEM (Республика Корея)
950 1370, 1373 Китайский (традиционный) Big5 (вариант Microsoft) ANSI / OEM (Тайвань, Гонконг)
951 5471 Китайский (традиционный) Big5-HKSCS (изд. 2001 г.) ANSI / OEM (Гонконг, 98 / NT4 / 2000 / XP с патчем HKSCS)

Несколько дополнительных многобайтовых кодовых страниц поддерживаются для декодирования или кодирования с использованием библиотек операционной системы, но не используются в качестве системного кодирования в любом локаль.

ID IBM Equivalent Язык Кодировка Используйте
корейский Johab (KS C 5601-1992, приложение 3) Преобразование
964 Китайский (традиционный) CNS 11643 Преобразование
Китайский (традиционный) TCA Преобразование
Китайский (традиционный) Big5 (вариант ETEN) Преобразование
? Китайский (традиционный) Преобразование
Китайский (традиционный) Телетекст Преобразование
Китайский (традиционный) Ван Преобразование
20932 954 (примерно) Японский EUC-JP Преобразование

кодовые страницы EBCDIC

  • 37 — IBM EBCDIC США-Канада, 8-битный SBCS
  • 500 — Latin 1
  • 870 — IBM870
  • 875 — cp875
  • 1026 — EBCDIC Turkish
  • 1047 — IBM01047 — Latin 1
  • 1140 — IBM01141
  • 1141 — IBM01141
  • 1142 — IBM01142
  • 1143 — IBM01143
  • 1144 — IBM01144
  • 1145 — IBM01145
  • 1146 — IBM01146
  • 1147 — IBM01147
  • 1148 — IBM01148
  • 1149 — IBM01149
  • — EBCDIC Германия
  • — EBCDIC Дания / Норвегия
  • — EBCDIC Финляндия / Швеция
  • — EBCDIC Италия
  • — EBCDIC Латинская Америка / Испания
  • — EBCDIC Соединенное Королевство
  • — EBCDIC японский
  • — EBCDIC Франция
  • — EBCDIC арабский
  • — EBCDIC Греческий
  • — x-EBCDIC-KoreanExtended
  • — Корейский
  • — EBCDIC Тайский
  • — EBCDIC Кириллица
  • — EBCDIC Исландский
  • — EBCDIC Кириллица
  • — EBCDIC Турецкий
  • — Японский EBCDIC (неполный, устаревший)

Кодовые страницы, связанные с Unicode

  • 1200 — Unicode (BMP по ISO 10646, UTF-16LE ). Доступно только для управляемых приложений
  • 1201 — Unicode (UTF-16BE ). Доступно только для управляемых приложений
  • 12000 — utf-32. Доступно только для управляемых приложений
  • 12001 — utf-32 Big Endian. Доступно только для управляемых приложений
  • 65000 — Unicode (UTF-7 )
  • 65001 — Unicode (UTF-8 )

Кодовые страницы совместимости Macintosh

  • 10000 — Apple Macintosh Roman
  • 10001 — Apple Macintosh Японский
  • — Apple Macintosh китайский (традиционный) (BIG-5)
  • — Apple Macintosh корейский
  • 10004 — Apple Macintosh арабский
  • — Apple Macintosh иврит
  • 10006 — Apple Macintosh греческий
  • 10007 — Apple Macintosh кириллица
  • — Apple Macintosh китайский (упрощенный) (GB 2312)
  • 10010 — Apple Macintosh Румынский
  • 10017 — Apple Macintosh украинский
  • — Apple Macintosh Thai
  • 10029 — Apple Macintosh Roman II / Центральная Европа
  • 10079 — Apple Macintosh Icelandic
  • 10081 — Apple Macintosh Turkish
  • 10082 — Apple Macintosh хорватский

ISO 8859 кодовых страниц

  • 28591 — ISO-8859-1 — Latin-1 (эквивалент IBM: 819)
  • 28592 — ISO-8859-2 — Latin-2
  • 28593 — ISO-8859-3 — Latin-3 или южноевропейский
  • 28594 — ISO-8859-4 — Latin-4 или североевропейский
  • 28595 — ISO-8859-5 — латиница / кириллица
  • 28596 — ISO-8859-6 — латиница / арабский
  • 28597 — ISO- 8859-7 — Латинский / греческий
  • 28598 — ISO-8859-8 — Латинский / иврит
  • 28599 — ISO-8859-9 — Latin-5 или турецкий
  • 28600 — ISO-8859-10 — Latin-6
  • 28601 — ISO-8859-11 — Latin / Thai
  • 28602 — ISO-8859-12 — зарезервировано для Latin / Devanagari, но не поддерживается (не поддерживается)
  • 28603 — ISO-8859- 13 — Latin-7 или Baltic Rim
  • 28604 — ISO-8859-14 — Latin-8 или Celtic
  • 28605 — ISO-8859 -15 — Latin-9
  • 28606 — ISO-8859-16 — Latin-10 или Юго-Восточная Европа
  • 38596 — ISO- 8859-6-I — латинский / арабский (логический двунаправленный порядок)
  • 38598 — ISO-8859-8-I — латинский / иврит (логический двунаправленный порядок)

Кодовые страницы ITU-T

  • 20105 — 7-битный IA5 IRV (западноевропейский)
  • 20106 — 7-битный IA5 немецкий (DIN 66003)
  • — 7-битный IA5 шведский (SEN 850200 C)
  • — 7-битный IA5 норвежский (NS 4551-2)
  • 20127 — 7-битный US-ASCII
  • 20261 — T.61 (T.61-8bit)
  • 20269 — ISO-6937

кодовые страницы KOI8

  • 20866 — Русский — KOI8-R
  • 21866 — Украинский — KOI8-U (или KOI8-RU в некоторых версиях)

Другие кодовые страницы

  • — IBM00924 — IBM EBCDIC Latin 1 / Open System (1047 + символ евро)
  • — x-cp20936 — упрощенный китайский (GB2312); Упрощенный китайский (GB2312-80)
  • — x-cp20949 — Korean Wansung

Проблемы, связанные с использованием кодовых страниц

Microsoft настоятельно рекомендует использовать Unicode в современных приложениях, но многие приложения или файлы данных по-прежнему зависят от устаревших кодовых страниц.

  • Программы должны знать, какую кодовую страницу использовать, чтобы правильно отображать содержимое (до Unicode) файлов. Если программа использует неправильную кодовую страницу, она может отображать текст как mojibake.
  • Используемая кодовая страница может отличаться на разных машинах, поэтому файлы (до Unicode), созданные на одной машине, могут быть нечитаемыми на другой.
  • Данные часто неправильно помечены кодовой страницей или не помечены вообще, что затрудняет определение правильной кодовой страницы для чтения данных.
  • Эти кодовые страницы Microsoft в разной степени отличаются от некоторых из стандарты и реализации других поставщиков. Это не проблема Microsoft как таковая, как это происходит со всеми поставщиками, но отсутствие согласованности делает взаимодействие с другими системами ненадежным в некоторых случаях.
  • Использование кодовых страниц ограничивает набор символов, которые могут
  • Символы, выраженные в неподдерживаемой кодовой странице, могут быть преобразованы в вопросительные знаки (?) или другие заменяющие символы, или в более простую версию (например, удаление диакритических знаков из буквы). В любом случае исходный символ может быть утерян.

См. Также

  • AppLocale — утилита для запуска приложений, не поддерживающих Юникод (на основе кодовых страниц), в языковом стандарте по выбору пользователя.

Ссылки

  1. ^Кодовые страницы, MSDN
  2. ^ MSDN: Глоссарий терминов
  3. ^Список IANA из наборов символов
  4. ^«Расширяемый язык разметки (XML) 1.1 (второе издание): кодировки символов». W3C. 29 сентября 2006 г. Дата обращения 5 октября 2020 г.
  5. ^hylom (2017-11-14). «Windows 10 の Insider Preview シ ス テ ム ー ル を UTF-8 に す る プ シ ョ ン が 追加 さ れ る» [возможность сделать UTF-8 системным языковым стандартом, добавленным в Windows 10 Insider Preview].ス ラ ド (на японском). Проверено 10 мая 2018 г.
  6. ^«Наборы символов». IANA.
  7. ^Microsoft. «Windows 1250». Проверено 6 июля 2014.
  8. ^IBM. «Информационный документ кодовой страницы SBCS CPGID 01250». Проверено 6 июля 2014 г.
  9. ^Microsoft. «Windows 1251». Проверено 6 июля 2014 г.
  10. ^IBM. «Информационный документ кодовой страницы SBCS CPGID 01251». Проверено 6 июля 2014 г.
  11. ^Microsoft. «Windows 1252». Проверено 6 июля 2014 г.
  12. ^IBM. «Информационный документ кодовой страницы SBCS CPGID 01252». Проверено 6 июля 2014 г.
  13. ^Microsoft. «Windows 1253». Проверено 6 июля 2014.
  14. ^IBM. «Информационный документ кодовой страницы SBCS CPGID 01253». Проверено 6 июля 2014 г.
  15. ^Microsoft. «Windows 1254». Проверено 6 июля 2014 г.
  16. ^IBM. «Информационный документ кодовой страницы SBCS CPGID 01254». Проверено 6 июля 2014.
  17. ^Microsoft. «Windows 1255». Проверено 6 июля 2014.
  18. ^IBM. «Информационный документ кодовой страницы SBCS CPGID 01255». Проверено 6 июля 2014 г.
  19. ^Microsoft. «Windows 1256». Проверено 6 июля 2014 г.
  20. ^IBM. «Информационный документ кодовой страницы SBCS CPGID 01256». Проверено 6 июля 2014 г.
  21. ^Microsoft. «Windows 1257». Проверено 6 июля 2014 г.
  22. ^IBM. «Информационный документ кодовой страницы SBCS CPGID 01257». Проверено 6 июля 2014 г.
  23. ^Microsoft. «Windows 1258». Проверено 6 июля 2014.
  24. ^IBM. «Информационный документ кодовой страницы SBCS CPGID 01258». Проверено 6 июля 2014 г.
  25. ^IBM. «Информационный документ кодовой страницы SBCS — CPGID 00437». Проверено 4 июля 2014 г.
  26. ^«IBM-943 и IBM-932». Центр знаний IBM. IBM.
  27. ^»Информационный документ CCSID 1370″. Архивировано из оригинального 27 марта 2016 года.
  28. ^»Converter Explorer: ibm-1373_P100-2002″. Демонстрация интенсивной терапии. Международные компоненты для Unicode.
  29. ^«Идентификаторы кодированного набора символов — CCSID 5471». IBM Globalization. IBM. Архивировано с оригинального 29.11.2014.
  30. ^IBM. «Информационный документ кодовой страницы SBCS — CPGID 00037». Проверено 4 июля 2014 г.
  31. ^Стил, Шон (12 сентября 2005 г.). «Кодовая страница 21027» Расширенный / расширенный алфавитный нижний регистр «». MSDN.
  32. ^Идентификаторы кодовой страницы
  33. ^ Список идентификаторов кодовой страницы
  34. ^ «Идентификаторы кодовой страницы». Сеть разработчиков Microsoft. Microsoft. 2014. Архивировано из оригинала 19.06.2016. Проверено 19 июня 2016 г.
  35. ^ «Веб-кодировки — Internet Explorer — Кодировки». WHATWG Wiki. 2012-10-23. Архивировано из оригинала 20.06.2016. Проверено 20 июня 2016 г.
  36. ^Фоллер, Антонин (2014) [2011]. «Западноевропейская (IA5) кодировка — кодировки Windows». WUtils.com — онлайн-утилита и справка. Программное обеспечение Motobit. Архивировано из оригинала 20.06.2016. Проверено 20 июня 2016 г.
  37. ^Фоллер, Антонин (2014) [2011]. «Кодировка немецкого (IA5) — кодировки Windows». WUtils.com — онлайн-утилита и справка. Программное обеспечение Motobit. Архивировано из оригинала 20.06.2016. Проверено 20 июня 2016 г.
  38. ^Фоллер, Антонин (2014) [2011]. «Шведская (IA5) кодировка — кодировки Windows». WUtils.com — онлайн-утилита и справка. Программное обеспечение Motobit. Архивировано из оригинала 20.06.2016. Проверено 20 июня 2016 г.
  39. ^Фоллер, Антонин (2014) [2011]. «Норвежская (IA5) кодировка — кодировки Windows». WUtils.com — онлайн-утилита и справка. Программное обеспечение Motobit. Архивировано из оригинала 20.06.2016. Проверено 20 июня 2016 г.
  40. ^Фоллер, Антонин (2014) [2011]. «Кодировка US-ASCII — кодировки Windows». WUtils.com — онлайн-утилита и справка. Программное обеспечение Motobit. Архивировано из оригинала 20.06.2016. Проверено 20 июня 2016 г.
  41. ^Нечаев, Валентин (2013) [2001]. «Обзор вселенной 8-битных кодировок кириллицы». Архивировано из оригинала на 2016-12-05. Проверено 5 декабря 2016 г.

Внешние ссылки

  • Справочник по API поддержки национальных языков (NLS). Таблица, показывающая кодовые страницы ANSI и OEM для каждого языка (из веб-архива, поскольку Microsoft удалила исходную страницу)
  • Регистрации имен кодировки IANA
  • Таблица сопоставления Unicode для кодовых страниц Windows
  • Сопоставление Unicode кодовых страниц Windows с «наилучшим соответствием» »

Список из 256 символов и их коды в ASCII.

1

Управляющие символы

DEC OCT HEX BIN Символ Escape послед. HTML код Описание
0 000 0x00 00000000 NUL &#000; Нулевой байт
1 001 0x01 00000001 SOH &#001; Начало заголовка
2 002 0x02 00000010 STX &#002; Начало текста
3 003 0x03 00000011 ETX &#003; Конец «текста»
4 004 0x04 00000100 EOT &#004; конец передачи
5 005 0x05 00000101 ENQ &#005; «Прошу подтверждения!»
6 006 0x06 00000110 ACK &#006; «Подтверждаю!»
7 007 0x07 00000111 BEL a &#007; Звуковой сигнал – звонок
8 010 0x08 00001000 BS b &#008; Возврат на один символ (BACKSPACE)
9 011 0x09 00001001 TAB t Табуляция
10 012 0x0A 00001010 LF n Перевод строки
11 013 0x0B 00001011 VT v &#011; Вертикальная табуляция
12 014 0x0C 00001100 FF f &#012; Прогон страницы, новая страница
13 015 0x0D 00001101 CR r Возврат каретки
14 016 0x0E 00001110 SO &#014; Переключиться на другую ленту (кодировку)
15 017 0x0F 00001111 SI &#015; Переключиться на исходную ленту (кодировку)
16 020 0x10 00010000 DLE &#016; Экранирование канала данных
17 021 0x11 00010001 DC1 &#017; 1-й символ управления устройством
18 022 0x12 00010010 DC2 &#018; 2-й символ управления устройством
19 023 0x13 00010011 DC3 &#019; 3-й символ управления устройством
20 024 0x14 00010100 DC4 &#020; 4-й символ управления устройством
21 025 0x15 00010101 NAK &#021; «Не подтверждаю!»
22 026 0x16 00010110 SYN &#022; Символ для синхронизации
23 027 0x17 00010111 ETB &#023; Конец текстового блока
24 030 0x18 00011000 CAN &#024; Отмена
25 031 0x19 00011001 EM &#025; Конец носителя
26 032 0x1A 00011010 SUB &#026; Подставить
27 033 0x1B 00011011 ESC e &#027; Escape (Расширение)
28 034 0x1C 00011100 FS &#028; Разделитель файлов
29 035 0x1D 00011101 GS &#029; Разделитель групп
30 036 0x1E 00011110 RS &#030; Разделитель записей
31 037 0x1F 00011111 US &#031; Разделитель юнитов
127 177 0x7F 01111111 Delete  Символ для удаления (на перфолентах)

2

Печатные символы

DEC OCT HEX BIN Символ HTML код Мнемоника
32 040 0x20 00100000 Пробел
33 041 0x21 00100001 ! !
34 042 0x22 00100010 « " &quot;
35 043 0x23 00100011 # #
36 044 0x24 00100100 $ $
37 045 0x25 00100101 % %
38 046 0x26 00100110 & & &amp;
39 047 0x27 00100111 ' &apos;
40 050 0x28 00101000 ( (
41 051 0x29 00101001 ) )
42 052 0x2A 00101010 * *
43 053 0x2B 00101011 + +
44 054 0x2C 00101100 , ,
45 055 0x2D 00101101 -
46 056 0x2E 00101110 . .
47 057 0x2F 00101111 / /
48 060 0x30 00110000 0 0
49 061 0x31 00110001 1 1
50 062 0x32 00110010 2 2
51 063 0x33 00110011 3 3
52 064 0x34 00110100 4 4
53 065 0x35 00110101 5 5
54 066 0x36 00110110 6 6
55 067 0x37 00110111 7 7
56 070 0x38 00111000 8 8
57 071 0x39 00111001 9 9
58 072 0x3A 00111010 : :
59 073 0x3B 00111011 ; ;
60 074 0x3C 00111100 < < &lt;
61 075 0x3D 00111101 = =
62 076 0x3E 00111110 > > &gt;
63 077 0x3F 00111111 ? ?
64 100 0x40 01000000 @ @
65 101 0x41 01000001 A A
66 102 0x42 01000010 B B
67 103 0x43 01000011 C C
68 104 0x44 01000100 D D
69 105 0x45 01000101 E E
70 106 0x46 01000110 F F
71 107 0x47 01000111 G G
72 110 0x48 01001000 H H
73 111 0x49 01001001 I I
74 112 0x4A 01001010 J J
75 113 0x4B 01001011 K K
76 114 0x4C 01001100 L L
77 115 0x4D 01001101 M M
78 116 0x4E 01001110 N N
79 117 0x4F 01001111 O O
80 120 0x50 01010000 P P
81 121 0x51 01010001 Q Q
82 122 0x52 01010010 R R
83 123 0x53 01010011 S S
84 124 0x54 01010100 T T
85 125 0x55 01010101 U U
86 126 0x56 01010110 V V
87 127 0x57 01010111 W W
88 130 0x58 01011000 X X
89 131 0x59 01011001 Y Y
90 132 0x5A 01011010 Z Z
91 133 0x5B 01011011 [ [
92 134 0x5C 01011100 \
93 135 0x5D 01011101 ] ]
94 136 0x5E 01011110 ^ ^
95 137 0x5F 01011111 _ _
96 140 0x60 01100000 ` `
97 141 0x61 01100001 a a
98 142 0x62 01100010 b b
99 143 0x63 01100011 c c
100 144 0x64 01100100 d d
101 145 0x65 01100101 e e
102 146 0x66 01100110 f f
103 147 0x67 01100111 g g
104 150 0x68 01101000 h h
105 151 0x69 01101001 i i
106 152 0x6A 01101010 j j
107 153 0x6B 01101011 k k
108 154 0x6C 01101100 l l
109 155 0x6D 01101101 m m
110 156 0x6E 01101110 n n
111 157 0x6F 01101111 o o
112 160 0x70 01110000 p p
113 161 0x71 01110001 q q
114 162 0x72 01110010 r r
115 163 0x73 01110011 s s
116 164 0x74 01110100 t t
117 165 0x75 01110101 u u
118 166 0x76 01110110 v v
119 167 0x77 01110111 w w
120 170 0x78 01111000 x x
121 171 0x79 01111001 y y
122 172 0x7A 01111010 z z
123 173 0x7B 01111011 { {
124 174 0x7C 01111100 | |
125 175 0x7D 01111101 } }
126 176 0x7E 01111110 ~ ~

3

Расширенные символы ASCII Win-1251 кириллица

DEC OCT HEX BIN Символ HTML код Мнемоника
128 200 0x80 10000000 Ђ
129 201 0x81 10000001 Ѓ 
130 202 0x82 10000010 &sbquo;
131 203 0x83 10000011 ѓ ƒ
132 204 0x84 10000100 &bdquo;
133 205 0x85 10000101 &hellip;
134 206 0x86 10000110 &dagger;
135 207 0x87 10000111 &Dagger;
136 210 0x88 10001000 ˆ &euro;
137 211 0x89 10001001 &permil;
138 212 0x8A 10001010 Љ Š
139 213 0x8B 10001011 &lsaquo;
140 214 0x8C 10001100 Њ Œ
141 215 0x8D 10001101 Ќ 
142 216 0x8E 10001110 Ћ Ž
143 217 0x8F 10001111 Џ 
144 220 0x90 10010000 Ђ 
145 221 0x91 10010001 &lsquo;
146 222 0x92 10010010 &rsquo;
147 223 0x93 10010011 &ldquo;
148 224 0x94 10010100 &rdquo;
149 225 0x95 10010101 &bull;
150 226 0x96 10010110 &ndash;
151 227 0x97 10010111 &mdash;
152 230 0x98 10011000 Начало строки ˜
153 231 0x99 10011001 &trade;
154 232 0x9A 10011010 љ š
155 233 0x9B 10011011 &rsaquo;
156 234 0x9C 10011100 њ œ
157 235 0x9D 10011101 ќ 
158 236 0x9E 10011110 ћ ž
159 237 0x9F 10011111 џ Ÿ
160 240 0xA0 10100000 Неразрывный пробел   &nbsp;
161 241 0xA1 10100001 Ў ¡
162 242 0xA2 10100010 ў ¢
163 243 0xA3 10100011 Ј £
164 244 0xA4 10100100 ¤ ¤ &curren;
165 245 0xA5 10100101 Ґ ¥
166 246 0xA6 10100110 ¦ ¦ &brvbar;
167 247 0xA7 10100111 § § &sect;
168 250 0xA8 10101000 Ё ¨
169 251 0xA9 10101001 © © &copy;
170 252 0xAA 10101010 Є ª
171 253 0xAB 10101011 « « &laquo;
172 254 0xAC 10101100 ¬ ¬ &not;
173 255 0xAD 10101101 Мягкий перенос ­ &shy;
174 256 0xAE 10101110 ® ® &reg;
175 257 0xAF 10101111 Ї ¯
176 260 0xB0 10110000 ° ° &deg;
177 261 0xB1 10110001 ± ± &plusmn;
178 262 0xB2 10110010 І ²
179 263 0xB3 10110011 і ³
180 264 0xB4 10110100 ґ ´
181 265 0xB5 10110101 µ µ &micro;
182 266 0xB6 10110110 &para;
183 267 0xB7 10110111 · · &middot;
184 270 0xB8 10111000 ё ¸
185 271 0xB9 10111001 ¹
186 272 0xBA 10111010 є º
187 273 0xBB 10111011 » » &raquo;
188 274 0xBC 10111100 ј ¼
189 275 0xBD 10111101 Ѕ ½
190 276 0xBE 10111110 ѕ ¾
191 277 0xBF 10111111 ї ¿
192 300 0xC0 11000000 А À
193 301 0xC1 11000001 Б Á
194 302 0xC2 11000010 В Â
195 303 0xC3 11000011 Г Ã
196 304 0xC4 11000100 Д Ä
197 305 0xC5 11000101 Е Å
198 306 0xC6 11000110 Ж Æ
199 307 0xC7 11000111 З Ç
200 310 0xC8 11001000 И È
201 311 0xC9 11001001 Й É
202 312 0xCA 11001010 К Ê
203 313 0xCB 11001011 Л Ë
204 314 0xCC 11001100 М Ì
205 315 0xCD 11001101 Н Í
206 316 0xCE 11001110 О Î
207 317 0xCF 11001111 П Ï
208 320 0xD0 11010000 Р Ð
209 321 0xD1 11010001 С Ñ
210 322 0xD2 11010010 Т Ò
211 323 0xD3 11010011 У Ó
212 324 0xD4 11010100 Ф Ô
213 325 0xD5 11010101 Х Õ
214 326 0xD6 11010110 Ц Ö
215 327 0xD7 11010111 Ч ×
216 330 0xD8 11011000 Ш Ø
217 331 0xD9 11011001 Щ Ù
218 332 0xDA 11011010 Ъ Ú
219 333 0xDB 11011011 Ы Û
220 334 0xDC 11011100 Ь Ü
221 335 0xDD 11011101 Э Ý
222 336 0xDE 11011110 Ю Þ
223 337 0xDF 11011111 Я ß
224 340 0xE0 11100000 а à
225 341 0xE1 11100001 б á
226 342 0xE2 11100010 в â
227 343 0xE3 11100011 г ã
228 344 0xE4 11100100 д ä
229 345 0xE5 11100101 е å
230 346 0xE6 11100110 ж æ
231 347 0xE7 11100111 з ç
232 350 0xE8 11101000 и è
233 351 0xE9 11101001 й é
234 352 0xEA 11101010 к ê
235 353 0xEB 11101011 л ë
236 354 0xEC 11101100 м ì
237 355 0xED 11101101 н í
238 356 0xEE 11101110 о î
239 357 0xEF 11101111 п ï
240 360 0xF0 11110000 р ð
241 361 0xF1 11110001 с ñ
242 362 0xF2 11110010 т ò
243 363 0xF3 11110011 у ó
244 364 0xF4 11110100 ф ô
245 365 0xF5 11110101 х õ
246 366 0xF6 11110110 ц ö
247 367 0xF7 11110111 ч ÷
248 370 0xF8 11111000 ш ø
249 371 0xF9 11111001 щ ù
250 372 0xFA 11111010 ъ ú
251 373 0xFB 11111011 ы û
252 374 0xFC 11111100 ь ü
253 375 0xFD 11111101 э ý
254 376 0xFE 11111110 ю þ
255 377 0xFF 11111111 я ÿ
Attention.png Эта статья в настоящее время активно дополняется.Не вносите сюда изменений до тех пор, пока это объявление не будет убрано.

Windows-1251 — цифровая (компьютерная) кодировка, расширяющая ASCII для представления букв кириллицы и других символов. Самая популярная в Интернете однобайтовая (чисто 8-битная) кодировка кириллицы и вторая по используемости однобайтовая кодировка символов вообще после Windows-1252. Является одной из кодовых страниц для операционной системы Windows; под тем же номером внесена в каталог корпорации IBM.[1] На UNIX-системах называется «CP1251»; исторически называлась «кириллицей Windows» или «кириллицей Microsoft».

Содержание

  • 1 Набор и расположение символов
  • 2 Использование
    • 2.1 В Интернете
    • 2.2 В Microsoft Windows
    • 2.3 В прочих контекстах
  • 3 История создания, варианты и модификации
  • 4 Интересные факты
  • 5 Ссылки

Набор и расположение символов[править]

Основой для Windows-1251 служит кодовая страница западной латиницы Windows-1252, вторая половина кодовой таблицы которой освобождена от специфичных для латиницы букв и ряда подобных им знаков, а также нескольких таких (малоиспользуемых в кириллической типографике) символов, как простые двоичные дроби. Однако, свои места сохраняют символы «©», «®» и «™». Остаются нетронутыми не только все ASCII-символы, но и несколько (уточнить) позиций типографики. Это обеспечивает некоторую меру совместимости страницы 1251 с Windows-1252 и ею подобными: хотя при чтении записанного в Windows-1251 текста при установленной странице 1252 (или наоборот) и будут испорчены буквы, то хотя бы сохранят свой вид тире, кавычки-ёлочки, кривые апострофы и т.п. Знак евро «€», являющийся позднейшим добавлением в Windows, находится в Windows-1251 на 0x88 (136, 210) в отличие от 0x80 (128, 200) в 1252 и большинстве других страниц Windows.

Использование[править]

В Интернете[править]

Наличие в кодовой странице множества символов типографики (что не имеет места ни в «альтернативной» кодировке, ни в KOI8, ни тем более в ISO 8859-5) сделало весьма удобным представление свёрстанного кириллического текста в Windows-1251 независимо от операционной системы потребителя. Это обеспечило уверенное доминирование Windows-1251 в кириллическом секторе WWW на протяжение примерно двенадцати лет. При этом в электронной почте и сообщениях NNTP преобладала KOI8-R (и её модификации) ввиду особенностей передачи данных по некоторым каналам.
С конца 2000-х годов главной кодировкой Интернета становится UTF-8, в том числе для кириллической письменности.

По тем же причинам, что и вышеназванные, Windows-1251 имела широкое использование в IRC и используется (в русскоязычной среде) до сих пор. Ограничения протокола делают нежелательным полный переход на UTF-8 (или какую-либо многобайтную кодировку вообще).

В Microsoft Windows[править]

Служила локализацией для использующих кириллицу славянских языков и некоторых других (перечислить) как до введения в Windows Юникода, так и после — ради поддержания приложений, работающих через старый 8-битный API. Информацию о кодовой странице можно найти в реестре в разделе «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsCodePage», ключах «1251» и (при наличии локали) «ACP».

В прочих контекстах[править]

Кроме использования кода 0xFF (255, 377) для строчной буквы «я», нет противопоказаний для использования Windows-1251 в системах UNIX. Современные системы (большинство разновидностей GNU/Linux, FreeBSD и т.д.) позволяют без установки стороннего ПО собрать локаль с кодировкой CP1251.

История создания, варианты и модификации[править]

Ни CP866 (разновидность «альтернативной» кодировки), уже поддерживаемая ПО от Microsoft, ни KOI8-R разработчиков Windows не удовлетворили ввиду отсутствия многих полезных символов типографики. Их место во второй половине кодовых таблиц CP866 и KOI8-R занимает псевдографика, бесполезная в графической среде Windows. Как указано выше, расположение символов Windows-1251 обусловлено частичной совместимостью с Windows-1252, разработанной ранее.

В течение 1990-х годов и до 2002 года были разработаны несколько модификаций кодировки для поддержки алфавитов, не полностью покрываемых исходной кодовой страницей Windows-1251.

Интересные факты[править]

  • Номера кодовых страниц Windows назначаются не в порядке создания. Кодировка из страницы 1252 присутствовала в ПО Windows изначально, а 1250 (центральноевропейская латиница) и 1251 появились позже — во время Windows 3.1.

Ссылки[править]

  1. ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP01251.txt
  • http://dibr.nnov.ru/use012.html — версия истории создания Windows-1251, опубликованная в фидоэхе SU.LAN неким Igor V. Semenyuk.
  • http://web.archive.org/web/20140606085903/http://msdn.microsoft.com/ru-RU/goglobal/cc305144.aspx
Кодировки символов
Основы Алфавит • текст • набор символов • конверсия
Исторические кодировки Докомп.: семафорная (Макарова) • Морзе • Бодо • МТК-2
Комп.: 6-битная • УПП • RADIX-50 • EBCDIC ( ДКОИ-8 ) • КОИ-7 • ISO 646
современное
8-битное
представление
символы ASCII ( управляющие • печатные )
8-битные код.стр. ISO 8859 • кириллица (КОИ-8 • ГОСТ 19768-87 • MacCyrillic)
Windows 1250 • 1251 (кир.) • 1252 • 1253 • 1254 • 1255 • 1256 • 1257 • 1258 • WGL4
IBM & DOS 437 • 850 • 852 • 855 • 866 «альт.» • МИК • НИИ ЭВМ
Многобайтные Традиционные DBCS ( GB 2312 ) • HTML
Unicode UTF • список символов (кириллица • латиница)
Связанные темы интерфейс пользователя • раскладка клавиатуры • локаль • перевод строки • кракозябры • транслит • нестандартные шрифты

Понравилась статья? Поделить с друзьями:
  • Команда python в командной строке не работает windows
  • Команда powershell windows 10 для исправления ошибок
  • Кодировщик utf 8 в windows 1251
  • Команда powercfg h off windows 10
  • Кодировщик mpeg2 для windows 7 скачать бесплатно