КОДИРОВКИ WIN1251, KOI7, KOI8R И ДРУГИЕ

Что один человек закодировал, то другой завсегда раскодировать сможет. Сможет ли?

А. Алешин

Рассмотрим наиболее известные и важные виды кодировок, используемые в разных операционных системах. Особое внимание уделим, конечно, кириллическим кодировкам, а именно WIN1251, KOI7, KOI8R и др. Ранее, в разделе 7.1, мы познакомились со стандартными английскими кодировками типа ASCII и новейшими универсальными кодировками Unicode. Однако исторически появлению Unicode предшествовала целая серия кириллических кодировок, которые и сейчас еще активно и часто используются в операционных системах и Интернет.

KOI-7


Кодировка KOI-7 (KOИ-7, Код Обмена Информацией, 7-ми битный) позволяет кодировать 27 = 128 символов, из которых 32 буквы русского алфавита, 26 букв латинского алфавита, 10 цифр и 26 печатаемых символа, пробел, специальные символы и непечатаемые символы. Коды непечатаемых символов находятся в диапазоне 00-20 (с ними можно ознакомиться в разделе 7.1, в таблице ASCII).

Замечательным правилом, действующим в этой кодировке является весовой принцип кодирования латинских символов, для которого верно правило: Веса кодов букв латинского алфавита увеличиваются на единицу в алфавитном порядке, то есть:

Код последующего символа = Код предыдущего символа + 1, или
Код D = Код C + 1, и так далее...

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

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

   Число      Символ      Число      Символ      Число      Символ      Число      Символ      Число      Символ      Число      Символ   

20

пробел

30

0

40

@

50

P

60

Ю

70

П

21

!

31

1

41

A

51

Q

61

А

71

Я

22

"

32

2

42

B

52

R

62

Б

72

Р

23

#

33

3

43

C

53

S

63

С

73

С

24

$

34

4

44

D

54

T

64

Д

74

Т

25

%

35

5

45

E

55

U

65

Е

75

У

26

&

36

6

46

F

56

V

66

Ф

76

Ж

27

'

37

7

47

G

57

W

67

Г

77

В

28

(

38

8

48

H

58

X

68

Х

78

Ь

29

)

39

9

49

I

59

Y

69

И

79

Ы

2A

*

3A

:

4A

J

5A

Z

6A

Й

7A

З

2B

+

3B

;

4B

K

5B

[

6B

К

7B

Ш

2C

,

3C

<

4C

L

5C

\

6C

Л

7C

Э

2D

-

3D

=

4D

M

5D

]

6D

М

7D

Щ

2E

.

3E

>

4E

N

5E

^

6E

Н

7E

Ч

2F

/

3F

?

4F

O

5F

Ъ

6F

О

7F

"забой"



KOI-8R

Кодировка KOI-8R (KOИ-8, Код Обмена Информацией, 8-ми битный) позволяет кодировать 28 = 256 символов, в число которых входят 31 прописная и 32 строчных букв русского алфавита, 26 прописных и 26 строчных букв латинского алфавита, 10 цифр, 32 служебных знака и специальные символы, предназначенные для управления устройствами и передачи данных. Коды в диапазоне 21-5F соответствуют одинаковым символам как для KOI-7, так и для KOI-8R.

КодСимволКодСимволКодСимволКодСимволКодСимволКодСимволКодСимволКодСимволКодСимволКодСимвол

20

пробел

30

0

40

@

50

P

60

\

70

p

С0

ю

D0

п

E0

Ю

F0

П

21

!

31

1

41

A

51

Q

61

а

71

q

С1

а

D1

я

E1

А

F1

Я

22

"

32

2

42

B

52

R

62

b

72

r

С2

б

D2

р

E2

Б

F2

Р

23

#

33

3

43

C

53

S

63

c

73

s

С3

ц

D3

с

E3

Ц

F3

С

24

$

34

4

44

D

54

T

64

d

74

t

С4

д

D4

т

E4

Д

F4

Т

25

%

35

5

45

E

55

U

65

e

75

u

С5

е

D5

у

E5

Е

F5

У

26

&

36

6

46

F

56

V

66

f

76

v

С6

ф

D6

ж

E6

Ф

F6

Ж

27

'

37

7

47

G

57

W

67

g

77

w

С7

г

D7

в

E7

Г

F7

В

28

(

38

8

48

H

58

X

68

h

78

x

С8

х

D8

ь

E8

Х

F8

Ь

29

)

39

9

49

I

59

Y

69

i

79

y

С9

и

D9

ы

E9

И

F9

Ы

2A

*

3A

:

4A

J

5A

Z

6A

j

7A

z

СA

й

DA

з

EA

Й

FA

З

2B

+

3B

;

4B

K

5B

[

6B

k

7B

(

СB

к

DB

ш

EB

Х

FB

Ш

2C

,

3C

<

4C

L

5C

\

6C

l

7C

|

СС

л

DC

э

EC

Л

FC

Э

2D

-

3D

=

4D

M

5D

]

6D

m

7D

)

СD

м

DD

щ

ED

М

FD

Щ

2E

.

3E

>

4E

N

5E

^

6E

n

7E

-

СE

н

DE

ч

EE

Н

FE

Ч

2F

/

3F

?

4F

O

5F

Ъ

6F

o

7F

"забой"

CF

о

DF

ъ

EF

О

FF

"забой"



Win1251 (CP1251)

Кодировка Win1251 (CP1251, Code Page 1251, кодовая страница) сейчас является одной из наиболее распространенных в сети Интернет и персональных компьютерах (на которых установлена операционная система Windows. Все Windows приложения должны понимать эту кодировку без перевода.

CP866

Кодировка CP866 (Code Page 866, кодовая страница) в настоящее время можно назвать реликтом, поскольку ее используют компьютеры, работающие под операционной системой MS DOS и OS/2. Её же использует сеть ФИДО.

СЕМЕЙСТВО КОДИРОВОК 8859

Восьмибитное семейство кодировок 8859, созданное International Standorts Organization, ISO, для наведения порядка в восьмибитных кодировках, расширило таблицу ASCII для латинских букв с диакритикой и лигатур (кодировка ISO 8859-1), славянских языков с латинским алфавитом, например, чешский, польский, венгерский, (ISO 8859-2), турецкого, мальтийского, эсперанто, галисийского языков (ISO 8859-3), кириллицы (ISO 8859-5), арабского (ISO 8859-6), греческого (ISO 8859-7), иврита (ISO 8859-8) и других языков. Кириллическая кодировка этого семейства не получила широкого распространения, зато стандарт ISO 8859-1 (так называемая Latin-1) стала стандартом для "расширенной" латиницы и содержит практически все символы западноевропейских языков. Так, многие шрифты для Windows соответствуют кодировке ISO 8859-1 начиная с позиции 160 до конца таблицы, а в диапазоне 128-159 содержат дополнительные символы (длинное тире или "торговая марка", например). Именно в этом семействе появилось понятие "кодовая страница" (набор из 256 символов для каждого определённого языка или группы языков). Крупным недостатком такого подхода является невозможность смешивания языков в одном документе и отсутствие представления для китайского и японского языков.

<< Предыдущий раздел       Оглавление       Следующий раздел >>


Одесский национальный университет им. И.И. Мечникова
Кафедра компьютерных и информационных технологий
Все права защищены © ;-)
Web-страница автора
Алексей Алешин
Hosted by uCoz