
2. Коды мтк-2, ascii, кои-8 и их характеристика
ТЕЛЕГРАФНЫЙ ТРЁХРЕГИСТРОВЫЙ КОД МТК-2 был принят в 1963 году. Код 5-ти битовый (всего 32 разных комбинации), поэтому используются 3 разных регистра (русский, латинский, цифры), переключаемые управляющими символами РУС, ЛАТ, ЦИФ. Букв Ъ и Ё нет; вместо буквы Ч использовали цифру 4.
МТК-2 основан на международном телеграфном коде № 2 (ITA2), рекомендованном Международным консультативным комитетом по телефонии и телеграфии в 1932 году (в международном коде 00000 не используется).
Таблица 1 – Кодирование элементов сообщения кодом МТК-2
Шестнадцатеричный код |
Десятичный код |
Двоичный код |
Латинские буквы |
Русские буквы |
Цифры |
0x03 |
3 |
00011 |
A |
А |
- |
0x19 |
25 |
11001 |
B |
Б |
? |
0x0E |
14 |
01110 |
C |
Ц |
: |
0x09 |
9 |
01001 |
D |
Д |
Кто там? |
0x01 |
1 |
00001 |
E |
Е |
З |
0x0D |
13 |
01101 |
F |
Ф |
Э |
0x1A |
26 |
11010 |
G |
Г |
Ш |
0x14 |
20 |
10100 |
H |
Х |
Щ |
0x06 |
6 |
00110 |
I |
И |
8 |
0x0B |
11 |
01011 |
J |
Й |
Ю |
0x0F |
15 |
01111 |
K |
К |
( |
0x12 |
18 |
10010 |
L |
Л |
) |
0x1C |
28 |
11100 |
M |
М |
. |
0x0C |
12 |
01100 |
N |
Н |
, |
0x18 |
24 |
11000 |
O |
О |
9 |
0x16 |
22 |
10110 |
P |
П |
0 |
0x17 |
23 |
10111 |
Q |
Я |
1 |
0x0A |
10 |
01010 |
R |
Р |
4 |
0x05 |
5 |
00101 |
S |
С |
' |
0x10 |
16 |
10000 |
T |
Т |
5 |
0x07 |
7 |
00111 |
U |
У |
7 |
0x1E |
30 |
11110 |
V |
Ж |
= |
0x13 |
19 |
10011 |
W |
В |
2 |
0x1D |
29 |
11101 |
X |
Ь |
/ |
0x15 |
21 |
10101 |
Y |
Ы |
6 |
0x11 |
17 |
10001 |
Z |
З |
+ |
0x08 |
8 |
01000 |
Возврат каретки |
|
|
0x02 |
2 |
00010 |
Перевод строки |
|
|
0x1F |
31 |
11111 |
Буквы латинские |
|
|
0x1B |
27 |
11011 |
Цифры |
|
|
0x04 |
4 |
00100 |
Пробел |
|
|
0x00 |
0 |
00000 |
Буквы русские |
|
|
С появлением нового вида электросвязи – передачи данных возникла потребность введения новых служебных, арифметических, логических и других символов, отсутствующих в MТK-2. Это привело к необходимости создания нового стандартного кода, пригонного как для телеграфии, так и для передачи данные. Был разработан и утвержден в 1966 году МККТТ и МОС новый международный стандартней код МТК-5, который содержит на только строчные, но и прописные буквы, дополнительные знаки препинания, большое число символов управления устройствами связи и печати.
Код обеспечивает:
обработку и передачу машинной символики в пределах машинного языка «КОБОЛ»;
простоту выделения при декодировании групп символов различного характера: служебных символов, цифр, букв и специальных знаков;
простой алгоритм работы ЭВМ при обработке цифровой информации;
упрощение процессов упорядочения информации по цифрам и буквам;
передачу информации по каналам связи и телеуправления устройствами обработки данных;
построение клавиатуры аппаратов с расположением клавиш, близким к расположению на клавиатуре пишущей машинки.
КОИ-8 (код обмена информацией, 8 битов), KOI8 – восьмибитовая ASCII – совместимая кодовая страница, разработанная для кодирования букв кириллических алфавитов.
Существует также семибитовая версия кодировки, не полностью совместимая с ASCII – КОИ-7. КОИ-7 и КОИ-8 описаны в ныне не действующем ГОСТ 19768-74.
Разработчики КОИ-8 поместили символы русского алфавита в верхней части кодовой таблицы таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что если в тексте, написанном в КОИ-8, убирать восьмой бит каждого символа, то получается «читаемый» текст, хотя он и написан латинскими символами. Например, слова «Русский Текст» превратились бы в «rUSSKIJ tEKST». Как побочное следствие, символы кириллицы оказались расположены не в алфавитном порядке.
Существует несколько вариантов кодировки КОИ-8 для различных кириллических алфавитов, расширяющие определённые коды (общий диапазон 192—255 с 32 русскими буквами в двух регистрах остаётся неизменным во всех вариантах). Русский алфавит описывается в кодировке KOI8-R, украинский в KOI8-U.
KOI8-R стал фактически стандартом для русской кириллицы в 1990-х годах в юникс-подобных операционных системах и электронной почте. Автор данной кодировки (RFC1489), которая стала первой русской стандартизированной кодировкой в интернете – Андрей Чернов, в начале 1990-х годов работал в компании Демос (сеть Релком) и непосредственно участвовал в запуске и наладке первого интернет-канала между Россией и западными странами.
IETF утвердил несколько RFC по вариантам кодировки KOI-8:
RFC1489 – KOI8-R;
RFC2319 – KOI8-U;
RFC1345 – ISO-IR-111 (с ошибкой в определении основного диапазона).
IANA зарегистрировала их в своём списке.
Стандарт RFC 1489 предписывает наличие графических символов «рамок» (псевдографики), однако это требование выполняется довольно редко.
В Microsoft Windows KOI8-R присвоен код страницы 20866, KOI8-U – 21866.
Начало таблицы кодировки (латиница) полностью соответствует кодировке ASCII.
В приведённых таблицах числа под буквами обозначают шестнадцатеричный код буквы в Юникоде.
|
|
Рисунок 2.1 – Кодировка русских букв в коде КОИ-8 Р |
ASCII (англ. American Standard Code for Information Interchange) – американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов. В американском варианте английского языка произносится [э́ски], тогда как в Великобритании чаще произносится [а́ски]; по-русски произносится также [а́ски] или [аски́].
ASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Изначально разработанная как 7-битная, с широким распространением 8-битного байта ASCII стала восприниматься как половина 8-битной. В компьютерах обычно используют расширения ASCII с задействованным 8-м битом и второй половиной кодовой таблицы (например, КОИ-8).
Национальные варианты ASCII
Стандарт ISO 646 (ECMA-6) предусматривает возможность размещения национальных символов на месте @ [ \ ] ^ ` { | } ~. В дополнение к этому, на месте # может быть размещён £, а на месте $ — ¤. Такая система хорошо подходит для европейских языков, где нужны лишь несколько дополнительных символов. Вариант ASCII без национальных символов называется US-ASCII, или «International Reference Version».
Для некоторых языков с нелатинской письменностью (русского, греческого, арабского, иврита) существовали более радикальные модификации ASCII. Одним из вариантов был отказ от строчных латинских букв на их месте размещались национальные символы (для русского и греческого только заглавные буквы). Другой вариант – переключение между US-ASCII и национальным вариантом «на лету» с помощью символов SO (Shift Out) и SI (Shift In) – в этом случае в национальном варианте можно полностью устранить латинские буквы и занять всё пространство под свои символы. См. также КОИ-7.
Впоследствии оказалось удобнее использовать 8-битные кодировки (кодовые страницы), где нижнюю половину кодовой таблицы (0-127) занимают символы US-ASCII, а верхнюю (128-255) – дополнительные символы, включая набор национальных символов.
Таким образом, верхняя половина таблицы ASCII до повсеместного внедрения Юникода активно использовалась для представления локализированных символов, букв местного языка. Отсутствие единого стандарта размещения кириллических символов в таблице ASCII доставляло множество проблем с кодировками (КОИ-8, Windows-1251 и другие). Другие языки с нелатинской письменностью тоже страдали из-за наличия нескольких разных кодировок.
В Юникоде первые 128 символов тоже совпадают с соответствующими символами US-ASCII.
|
|
Рисунок 2.2 – Код ASCII в символах азбуки Морзе |
Выводы
Таким образом, в ходе рассмотрения второго вопроса удалось:
1. Разобрать коды МТК-2, ASCII, КОИ-8 и их характеристики.