Поясните структуру кодировки windows 1251

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.

В начале 90-х, когда произошел развал СССР и границы России были открыты, к нам стали поступать программные продукты западного производства. Естественно, все они были англоязычными. В это же время начинает развиваться Интернет. Остро встала проблема русификации ресурсов и программ. Тогда и была придумана русская кодировка Windows 1251. Она позволяет корректно отображать буквы славянских алфавитов:

  • русского;
  • украинского;
  • белорусского;
  • сербского;
  • болгарского;
  • македонского.

Разработка велась русским представительством Microsoft совместно с компаниями «Диалог» и «Параграф». За основу были взяты самописные разработки, которые в 1990-91гг имели хождение среди немногочисленных идеологов ИТ в России.

На сегодняшний день разработан более универсальный способ кодировать символы — UTF-8 (Юникод). В нем представлено почти 90% всех программных и веб-ресурсов. Windows 1251 применяется в 1,6% случаев. (Информация по исследованиям Web Technology Surveys)

Кодировка сайта utf 8 или Windows 1251?

Чтобы ответить на этот вопрос, необходимо немного понять, что такое кодировка и чем они отличаются. Текстовая информация, как впрочем, и любая другая, в компьютере хранится в закодированном виде. Нам легче представить ее как числа. Каждый символ может занимать один или более байт. Windows 1251 является однобайтной кодировкой, а UTF-8 восьмибайтной. Это значит, что в Windows 1251 можно закодировать всего 256 символов.
Так как все сводится к двоичной системе исчисления, а байт – это 8 бит (0 и 1), то и максимальное число сочетаний составляет 28 = 256. Юникод позволяет представлять куда большее число символов, да и на каждый может быть выделен больший размер.

Отсюда и следуют преимущества Юникода:

  1. В шапке сайта следует указать кодировку, которая используется. Иначе вместо символов отобразятся «кракозяблы». А Юникод является стандартным для всех браузеров – они ловят его «на лету» как установленный по умолчанию.
  2. Символы сайта останутся одними и теми же, независимо от того, в какой стране загружается ресурс. Это зависит не от географического расположения серверов, а от языка программного обеспечения рабочих станций клиента. Житель Португалии, очевидно, использует клавиатуру и все ПО, включая операционную систему, на родном языке. В его компьютере, скорее всего вообще отсутствует Windows 1251. А если это так, то и сайты на русском языке корректно открываться не будут. Юникод, в свою очередь, «зашит» в любую ОС на любом языке.
  3. UTF-8 позволяет закодировать большее количество символов. На данный момент используется 6 байт из 8-ми, а русские символы кодируются двумя байтами.
    Именно поэтому предпочтительней использовать универсальную кодировку, а не узкоспециализированную, которая применяется только в славянских странах.

Таблица кодировки Windows 1251

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

Что делать, если слетела кодировка командной строки?

Иногда Вы можете столкнуться с ситуацией, когда в командной строке вместо русских отображаются непонятные символы. Это означает, что возникла проблема кодировки командной строки Windows 7. Почему 7-ка? Потому что, начиная с 8-й версии, используется UTF-8, а в семерке еще Windows 1251.
Единовременно помочь решить проблему может команда chcp 866. Текущий сеанс будет работать корректно. А вот чтобы исправить ошибку кардинально, понадобится реестр.

  1. Нажмите Win+R и наберите команду regedit. Это позволит попасть в редактор реестра.
  2. Перейдите по ветке HKEY_CURRENT_USER\Console и посмотрите, чему равно значение для CodePage. Скорее всего, вы увидите что-то, отличное от 866 (правильный вариант).
  3. Исправьте на 866 в положении «Десятичная».
  4. Закройте и откройте вновь командную строку. Ситуация должна исправиться.

Отличного Вам дня!

From MobileRead

Jump to: navigation,
search

Windows-1251 (also known as code page CP1251) is a popular 8-bit character code, designed to cover languages that use the Cyrillic alphabet.

Contents

  • 1 Introduction
  • 2 1251 Code page layout
  • 3 Notes
  • 4 Coverage
    • 4.1 Language specific characters
  • 5 For more information

[edit] Introduction

The original ASCII code was designed to work in 7 bits which offers
128 separate characters. The first 32 (0 — 31) were reserved for control codes but most of the rest are printable. The character 127 was defined to implement the backspace/delete functionality but on some devices it will be shown as a small box if coded. Since most items in a computer are stored in bytes with its 8 bits there are another 128 characters that could be used. The Windows-1251 code is designed to use these codes for the Cyrillic alphabet and is much more commonly used than the ISO 8859-5 standard intended for the same purpose but was never really adopted by these users. (It is missing some Ukrainian characters.) In the future, both may eventually give way to Unicode which is the preferred character set.

[edit] 1251 Code page layout

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

Note that the word codes shown are for reference. They will not normally generate these values but will likely generate the equivalent ISO or UTF-8 values depending on the reader (see special characters). The full Windows-1251 includes ASCII values. The ones shown here are unique to this coding.

UTF-8 Character Code Description[1]
U+0402 Ђ 128
U+0403 Ѓ 129
U+201A 130 single low 9 quote
U+0453 ѓ 131
U+201E 132 double low 9 quote
U+2036 133 ellipse
U+2020 134 dagger
U+2021 135 Double Dagger
U+20AC 136 Euro sign[2]
U+2030 137 per mille
U+0409 Љ 138
U+2039 139 left arrow quote
U+040A Њ 140
U+040C Ќ 141
U+040B Ћ 142
U+040F Џ 143
U+0452 ђ 144
U+2018 145 left single curly quote
U+2019 146 right single curly quote
U+201C 147 left double curly quote
U+201D 148 right double curly quote
U+2022 149 bullet
U+2013 150 normal dash
U+2014 151 wide dash
152 undefined[2]
U+2122 153 trade mark
U+0459 љ 154
U+203A 155 right arrow quote
U+045A њ 156
U+045C ќ 157
U+045B ћ 158
U+045F џ 159
U+00A0 160 NBSP
U+040E Ў 161
U+045E ў 162
U+0408 Ј 163
U+00A4 ¤ 164 currency
U+0490 Ґ 165
U+00A6 ¦ 166 broken vertical bar
U+00A7 § 167 section sign
U+0401 Ё 168
U+00A9 © 169 copyright
U+0404 Є 170
U+00AB « 171 left angle quote
U+00AC ¬ 172 not sign
U+00AD 173 SHY (soft hyphen)
U+00AE ® 174 registered trademark
U+0407 Ї 175
U+00B0 ° 176 Degree sign
U+00B1 ± 177 Plus-minus sign
U+0406 І 178
U+0456 і 179
U+0491 ґ 180
U+00B5 µ 181 Micro sign
U+00B6 182 paragraph sign
U+00B7 · 183 middle dot
U+0451 ё 184
U+2116 185 Numero sign[3]
U+0454 є 186
U+00BB » 187 right angle quote
U+0458 ј 188
U+0405 Ѕ 189
U+0455 ѕ 190
U+0457 ї 191
UTF-8 Character Code Name
U+0410 А 192 A
U+0411 Б 193 Be
U+0412 В 194 Ve
U+0413 Г 195 Ge
U+0414 Д 196 De
U+0415 Е 197 E
U+0416 Ж 198 Zhe
U+0417 З 199 Ze
U+0418 И 200 I
U+0419 Й 201 short I
U+041A К 202 Ka
U+041B Л 203 El
U+041C М 204 Em
U+041D Н 205 En/Ne
U+041E О 206 O
U+041F П 207 Pe
U+0420 Р 208 Er/Re
U+0421 С 209 Es
U+0422 Т 210 Te
U+0423 У 211 U
U+0424 Ф 212 Ef/Fe
U+0425 Х 213 Kha
U+0426 Ц 214 Tse
U+0427 Ч 215 Che
U+0428 Ш 216 Sha
U+0429 Щ 217 Shcha, Shta
U+042A Ъ 218 soft sign or small yer
U+042B Ы 219 * Russian
U+042C Ь 220 * Russian
U+042D Э 221 * Russian
U+042E Ю 222 Yu
U+042F Я 223 Ya
U+0430 а 224
U+0431 б 225
U+0432 в 226
U+0433 г 227
U+0434 д 228
U+0435 е 229
U+0436 ж 230
U+0437 з 231
U+0438 и 232
U+0439 й 233
U+043A к 234
U+043B л 235
U+04eC м 236
U+043D н 237
U+043E о 238
U+043F п 239
U+0440 р 240
U+0441 с 241
U+0442 т 242
U+0443 у 243
U+0444 ф 244
U+0445 х 245
U+0446 ц 246
U+0447 ч 247
U+0448 ш 248
U+0449 щ 249
U+044A ъ 250
U+044B ы 251
U+044C ь 252
U+044D э 253
U+044E ю 254
U+044F я 255

[edit] Notes

  1. Unless otherwise indicated the codes listed in the description are the same as Windows-1252 and/or ISO-8859-1.
  2. 2.0 2.1 Not the same code as Windows-1252.
  3. Not the same as ISO-8859-1.

[edit] Coverage

All Cyrillic alphabets such as the Russian language. These include
  • Bulgarian
  • Belorussian
  • Russian
  • Macedonian
  • Serbian Cyrillic
  • Ukrainian
  • Azeri
  • Kyrgyz
  • Mongolian
  • Tatar
  • Uzbek

It is the most widely used character set for encoding the Bulgarian language, Serbian language and Macedonian language.

[edit] Language specific characters

  • Ukrainian and Belorussian characters: there are four special letters Ґ, Є, І, and Ї in both upper and lower case.
  • Serbian and Macedonian characters: there are five special character Ђ, Љ, Њ, Ћ, and Џ in both upper and lower case.

[edit] For more information

  • https://en.wikipedia.org/wiki/Cyrillic_alphabets
Windows 1251

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

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

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

  • строчная буква «я» имеет код 0xFF (255 в десятичной системе). Она является «виновницей» ряда неожиданных проблем в программах без поддержки чистого 8-го бита, а также (гораздо более частый случай) использующих этот код как служебный (в Windows-1252 — ÿ, оба варианта практически не используются; число же -1, в дополнительном коде длиной 8 бит представляющееся числом 255, часто используется в программировании как специальное значение, например, индикатор конца файла -1).
  • отсутствуют символы псевдографики, имеющиеся в CP866 и KOI8 (хотя для самих Windows, для которых она предназначена, в них не было нужды, это делало несовместимость двух использовавшихся в них кодировок заметнее).

Содержание

  • 1 Таблицы
    • 1.1 Кодировка Windows-1251 (синоним CP1251)
    • 1.2 Другие варианты
      • 1.2.1 Кодировка CP1251-k (KazWin, казахская кодировка)
      • 1.2.2 Кодировка Windows-1251 (чувашский вариант)
      • 1.2.3 Татарский вариант
  • 2 Внешние ссылки

Таблицы

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

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

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

201A
ѓ
453

201E

2026

2020

2021

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, казахская кодировка)

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

201A
ғ
493

201E

2026

2020

2021

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 (чувашский вариант)

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

201A
ѓ
453

201E

2026

2020

2021

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 г.

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

201A
ѓ
453

201E

2026

2020

2021

20AC

2030
Ө
4E8

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

2018

2019

201C

201D

2022

2013

2014
 
2122
ө
4E9

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

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

  • Информация о кодировке на Microsoft GlobalDev
  • История создании кодировки в сообщении Игоря Семенюка в эхоконференции SU.LAN от 14 января 1996
  • Декодер — Перекодировщик текста с латинских букв в кириллицу и наоборот

Wikimedia Foundation.
2010.

Полезное

Смотреть что такое «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 и UTF-16.

Виды кодировок

Кодировать символы можно разными способами. Ситуация напрямую зависит от того, какая кодировка используется в системе. Существуют различные ее виды. Основные:

  • ASCII;
  • CP866;
  • KOI8-R;
  • Windows 251;
  • Unicode.

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

ASCII – базовая кодировка

ASCII – American Standard Code for Information Interchange. В русском языке произносится как «Аски». Базовая кодировка для работы устройств. Первые 128 ее символов являются наиболее используемыми. Они включают в себя:

  • латинские буквы;
  • цифры (арабские);
  • служебные компоненты;
  • знаки препинания.

Для кодировки используется один байт. Это привело к тому, что у ASCII появились расширенные версии. Изначально данные таблицы не предоставляли возможность работы с кириллицей и русскими символами. Вместо них на экране появлялись непонятные записи – «кракозябры».


Выше представлены стандартные таблицы ASCII. В них русского алфавита нет – он не предусмотрен действующими правилами.

Расширенные ASCII

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

Первая расширенная версия ASCII – это CP866. В ней реализована первая таблица кодировки русских букв. Верхняя часть CP866 полностью совпадает с базовым «Аски», а нижняя позволяет закодировать кириллицу и некоторые символы, которых нет на клавиатуре.

Выше расположена кодовая таблица CP866. Она распространялась компанией IBM и использовалась преимущественно в DOS-системах.

Кириллица с момента образования CP866 стала активно использоваться к компьютерной технике. Это привело к созданию совершенно новых кодировок с русскими символами. Пример – KOI8-R.

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

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

Windows 1251

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

Наглядный и весьма распространенный вариант такой кодировки – это Windows 1251. Он отличается от предшественников следующими особенностями:

  1. Вместо псевдографики здесь располагаются недостающие символы кириллицы и русской типографики. Знак ударения – единственное исключение. Его там нет.
  2. На замену псевдографики пришли элементы, приближенные к кириллице – буквы славянских языков.
  3. Первые 32 элемента отведены под операции, перевод строки и пробел.
  4. До 127 элемента расположены интернациональные компоненты, латинский алфавит, знаки препинания и математических действий, цифры.
  5. Оставшееся «пространство» выделено под национальные элементы. Именно они отображают различные мировые алфавиты. 

Кодовая таблица, представленная выше – часть Windows 1251, отведенная под кириллицу и иные элементы. 

Unicode

Unicode – кодировка, которая пользуется наибольшим спросом в современных компьютерных устройствах. Этот стандарт включает в себя почти все знаки существующих письменных языков. Он преобладает в Интернете. Был создан в 1991 году.

Unicode является многоязычным стандартом, базирующимся на ASCII. Он включает не только кириллицу, но и азиатские иероглифы. Выступает в качестве универсальной кодировки. Включает в себя несколько стандартов.

UTF-32

Первая вариация Unicode. Для кодирования одного элемента здесь используются 32 бита или 4 байта. Данная особенность приводит к тому, что закодированный кириллический символ в UTF-32 будет иметь вес в 4 раза больше, чем в ASCII. Несмотря на соответствующий недостаток, система стала предлагать закодировать знаки в количестве 232.

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

UTF-16

UTF-16 – новый, более совершенный стандарт Unicode. После появления стала выступать базовым пространством для всех используемых печатных элементов. Кириллическая таблица в ней тоже есть.

Коды символов в UTF-16 содержатся в 16-ричной системе счислений. Увидеть их можно, если перейти в раздел Windows «Таблица символов». Она располагается в меню «Пуск»–«Программы»–«Стандартные»–«Служебные».

При помощи UTF-16 можно закодировать 65 536 элементов. Это число стало базовым для Unicode. Расширенное пространство включает в себя миллион дополнительных символьных записей.

При переходе с ASCII на UTF-16 размер исходного кода документа увеличивается уже не в 4, а в 2 раза. Связано это с использованием 2 байтов для кодирования одного и того же символа или шестнадцать бит.

UTF-8

Со временем был разработан стандарт UTF-8. В нем тоже есть кириллическая кодовая таблица. Носит название переменной длины. Несмотря на то, что в названии стандарта стоит 8, она действительно меняется. Каждый элемент может получить код длиной от 1 до 6 байт включительно. Практически стандартом используются компоненты до 4 байт. Латинские буквы здесь содержатся в одном байте, как и в ASCII.

В UTF-8 русские символы занимают по 2 байта, а грузинские – по 3. Текущий стандарт предусматривает возможность печати не только букв, но и смайликов. С UTF-8 хорошо работают даже системы, которые не ориентированы на Unicode. Связано это с тем, что базовая часть ASCII перешла в новый стандарт Юникода.

Блоки кириллицы

Unicode, начиная с версии 9.0, для кириллицы отвел пять различных блоков:

Как называется Диапазон кодов типа hex Версия Unicode
Cyrillic Стандартная кириллица От 0400 до 04FF 1.1
Cyrillic Supplement Дополнения От 0500 до 052F 3.2
Cyrillic Extended-A Расширенная кириллица–А От 2DE0 до 2DFF 5.1
Extended-B Кириллица расширенного типа–B От A640 до A69F
Extended-C Кириллица расширенная–C От 1C80 до 1C8F 9.0

Эти 4 раздела содержатся в кодовом пространстве Unicode 448 позиций. Из них 22 не определены.

Все символы кириллицы можно разбить на несколько групп:

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

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

Непонятные символы на экране – исправление

Любая страница данных может быть закодирована не только в ASCII, но и в Unicode. Главное правильно выбрать кодировку для русского текста. Если на экране вместо нормальных текстовых данных отображаются «кракозябры» (или непонятные надписи), значит возникла проблема перекодирования.

Для редактирования и создания новых текстовых документов можно использовать различные приложения, поддерживающие работу не только с Unicode. Тогда вероятность возникновения ошибок отображения информации будет сведена к минимуму. Пример – Notepad++. Он умеет подсвечивать синтаксис сотен языков программирования и разметки, что станет особо полезным при программировании проектов.

Чтобы страница, содержащая текст, была приведена от одного стандарта к другому, потребуется:

  1. Выделить текст в Notepad++.
  2. Нажать на кнопку «Кодировка» на верхней панели инструментов.
  3. Выбрать подходящий вариант. Пример – «Преобразовать в UTF-8».

Желательно выбирать вариант кодировки UTF-8 без BOM для русского языка, отображаемого на странице в документе или на сайте. Этот прием поможет сохранить данные без сигнатуры (добавления лишних трех байтов в самое начало документов).

Десятичная система

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

Десятичная система помогает в Windows вводить различные символы при помощи сочетания с Alt. Для перевода кириллицы в UTF-8 format поможет таблица ниже.



В Unicode transformation символьных записей производится при помощи целых чисел без знаков. Необходимые преобразования помогут выполнить специализированные сайты-конвертеры. Самостоятельно такие операции практически не используются. Таблицы соответствия и конвертеры сильно облегчают эту задачу.

Как освоить кодирование информации

Русская кодировка может некорректно отображаться в некоторых приложениях, а также операционных системах. Связано это с тем, что не все стандарты кодирования данных имеют коды для соответствующих элементов.

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

  • постоянное кураторство;
  • домашние задания и интересные практические задачи;
  • возможность освоить инновационные профессии и направления в мире IT в сжатые сроки;
  • помощь в формировании портфолио;
  • разнообразие направлений – есть предложения как для новичков, так и для взрослых.

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

Хотите стать профессионалом в сфере обработки данных? Добро пожаловать на курсы в Otus:

  • Промышленный ML на больших данных
  • Data Warehouse Analyst
  • Data Engineer

  • Правила названия файлов в windows
  • Поясните назначение меню пуск в ос windows
  • Почтовый клиент для windows 10 на русском языке
  • Правила безопасности подключения windows 10
  • Появляются артефакты при загрузке windows