Кодирование символьной информации
Внутреннее представление символов в ЭВМ осуществляется на основе оп-
ределенной системы кодирования символов, которая обычно представлена в виде кодовой таблицы. Кодовая таблица отражает соответствие между изображениями символов и их внутренними числовыми кодами. Коды
обычно представлены шестнадцатеричными или десятичными числами.
Кодовая таблица должна представлять следующие группы символов:
- управляющие символы;
- знаки арифметических операций, знаки препинания и цифры;
- буквы латинского алфавита;
- буквы национальных алфавитов;
- математические символы;
- символы псевдографики.
Общепринятый компьютерный алфавит еще не успел сложиться. В на-
стоящее время существует достаточно много способов кодирования символов. Так, для представления символов в самых первых компьютерах использовался стандартный телеграфный код. Это было вызвано тем временем: для ввода и вывода текста использовались стандартные телетайпы, подключенные к ЭВМ. Когда появилось специализированное компьютерное оборудование ввода- вывода, изменилось и кодирование. Так, фирма *BM в своих больших машинах использовала кодировку EBCDIC (E*tended Bin*ry Coded Dec**a* Inter*hange Code) - расширенный двоично-десятичный код обмена информацией. Сущест-
вовало порядка шести версий этого кода, несовместимых между собой.
В машинах американской фирмы DE* (советские аналоги этих машин -
СМ и ДВК) использовалась семибитовая кодировка КОИ-7 (KOI-7). С ее помо-
щью можно было закодировать 128 символов.
В современных условиях при вводе и преобразовании данных применяют-
ся различные системы кодирования символов. В IBM-совместимых ЭВМ используются в основном такие виды кодов: КОИ-7, КОИ-8, ДКОИ, A*CII и др. Наличие в ЭВМ блоков предварительной обработки позволяет производить пе-
рекодировку информации из одного кода в другой.
КОИ-* предназначался для представления алфавитно-цифровой информа-
ции на входах и выходах аппаратуры передачи данных по линиям связи. На- пример, Е-русское в этом коде обозначается 1100*01, а Е-латинское - 1000*01. Этот код оказался неудобен для внутренней обработки информации в машине. Для этих целей стали применяться коды КОИ-8 (восьмибитовый код обмена информации) и ДКОИ (двоичный код обмена и обработки информации). Пре- имущество этих кодов в том, что они предоставляют возможность кодирования
большего количества символов (до 2**).
КОИ-* предназначался для обмена алфавитно-цифровой информации с
магнитными накопителями. Построен на основе семибитового кода КОИ-7. КОИ-8 разработан с соблюдением международных стандартов, что позволяет использовать его не только для выполнения арифметических и логических опе- раций, но и обмена информацией как по внутренним, так и по международным
линиям связи.
ДКОИ - двоичный код обмена и обработки информации - предназначен
для обработки информации в машинах (табл.5.1-5.*).
Необходимость стандартизации представления текстовой информации бы-
ла достаточно скоро осознана. Результатом этого явилась кодировка ASCII (Am*rican Standard Cod* for Inf*rmation Inter*hange) - стандартный американ-
ский код для обмена информацией
Коды десятичных цифр (ДКОИ)
Таблица 5.1
Десятичная цифра
0
1
2
3
4
Код
F0
F1
F*
F3
*4
Десятичная цифра Код
5 F5
6 F6
7 F7
8 F8
9 F9
Коды латинских букв (ДКОИ)
Таблица 5.2
Латинская буква Код Латинская буква Код Латинская буква Код
A C* * D1 S E2
B C2 K D2 T Е3
C C3 L D3 U E4
* C4 M *4 * E5
E C5 N D5 W E6
F C6 O D6 X E7
G *7 * *7 Y *8
H C8 Q D8 * E9
I C9 R D9
Коды русских букв (ДКОИ)
Таблица 5.3
Русская буква Код Русская буква Код Русская буква Код
А C1 Л CE Ц BB
Б ВА М D4 Ч FE
В *2 Н C* Ш FB
Г BF О D6 Щ F*
Д BC П DC Ь EE
Е C5 Р *7 Ы *F
Ж EC С C3 Э F*
З *A Т E3 Ю B8
И CB У EB Я DD
Й *C Ф BE
К D2 Х E7
Коды знаков (ДКОИ)
Таблица 5.4
Знак
&
-
/
.
Название знака
Пробел
Знак «и»
Черточка
Знак деления
Точка
Код
40
50
60
6*
4B
Знак
;
┐
,
%
_
Название знака
Точка с запятой
Знак «не»
Запятая
Знак процента
Знак подчеркивания
Код
*E
5F
6B
*C
6D
< Меньше 4C > Больше 6E
( Левая скобка 4D ? Вопросительный знак 6F
+ Плюс 4E : Двоеточие 7A
| Знак «или» 4F # Знак номера 7B
! Восклицательный знак ** @ Товарный знак 7C
¤ Денежный знак 5B ‘ Апостроф 7D
* Знак умножения 5C = Знак «равно» 7*
) Правая скобка *D “ Кавычки 7F
ASCII введен в качестве стандартного кода для обмена информацией меж-
ду ЭВМ, а также для передачи информации по линиям связи. Это код двоич- ный, восьмиразрядный, восьмой бит - бит проверки на четность, семь осталь-
ных бит - значащие.
Хотя и введен стандарт, но несовместимые или частично совместимые с
ним варианты продолжают существовать. Особенно ситуация осложнилась, ко- гда компьютеры распространились за пределы англоязычных стран, а затем и за пределы стран с латинским алфавитом. Возникли проблемы совмещения латин-
ского и национального алфавитов в одной кодовой таблице.
В персональных компьютерах используется система кодирования AS*II. В
ней для национальных алфавитов, в частности, для русского отводятся коды с 128-го по 25*-й. Исторически сложилось так, что наш алфавит был закодирован в этом коде несколькими различными способами. Однако наиболее часто ис- пользовался вариант, известный как СР866 - кодовая страница 866 для M*
DO*.
Время идет, появляются новые операционные системы, которые предлага-
ют новые системы кодировки. Например, для представления кириллицы в опе-
рационной системе MS Wind*ws используется CP1251 - кодировка, несовмес-
тимая с прежней кодировкой кириллицы в M* DOS.
Несколько лет спустя появилась версия операционной системы UNI* для
IBM-совместимых ПК, которая принесла с собой кодировку *EC *OI-* и её кириллический вариант KOI-8r, который считается стандартом для передачи
русскоязычной информации и её представления в Internet.
Одним из возможных решений проблемы совместимости национальных
кодировок символов является разработка универсального межнационального стандарта. На её роль в настоящее время претендует стандарт UN*CODE, в ко- тором для представления символов используется двухбайтовая кодировка. В Wi**ow* 95 и Wi*dows NT тоже есть средства по работе с UNIC*DE. Однако кодировка символов кириллицы в UNICODE не совместима ни с одной коди-
ровкой русских букв, из числа упоминавшихся выше.