Кодирование текстовых данных
Если каждому символу алфавита сопоставить определенное целое число
(например порядковый номер), то с помощью двоичного кода можно кодиро-
вать и текстовую информацию. Восьми двоичных разрядов достаточно для ко- дирования 256 различных символов. Этого хватит, чтобы выразить различными комбинациями восьми битов все символы английского и русского алфавитов как строчные, так и прописные, а также знаки препинания, символы основных арифметических действий и некоторые общепринятые специальные символы, например символ «$».
Технически это выглядит очень просто, однако всегда существовали дос-
таточно веские организационные сложности. В первые годы развития вычисли- тельной техники они были связаны с отсутствием необходимых стандартов, а в настоящее время вызваны, наоборот, изобилием одновременно действующих и противоречивых стандартов. Для того чтобы весь мир одинаково кодировал текстовые данные, нужны единые таблицы кодирования, а это пока невозможно из-за противоречий между символами национальных алфавитов, а также проти- воречий корпоративного характера. Для английского языка, захватившего де- факто нишу международного средства общения, противоречия уже сняты. Институт стандартизации США (ANSI – American National Standard Institute) ввел в действие систему кодирования ASCII (American Standard Code for Infor- mation Interchange — стандартный код информационного обмена США). В системе ASCII закреплены две таблицы кодирования: базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127, а расширенная отно- сится к символам с номерами от 128 до 255.
Первые 32 кода базовой таблицы, начиная с нулевого, отданы производи-
телям аппаратных средств (в первую очередь производителям компьютеров и
печатающих устройств). В этой области размещаются так называемые управ- ляющие коды, которым не соответствуют никакие символы языков, и, соответ- ственно, эти коды не выводятся ни на экран, ни на устройства печати, но ими можно управлять тем, как производится вывод прочих данных.
Начиная с кода 32 по код 127 размещены коды символов английского ал-
фавита, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов.
Аналогичные системы кодирования текстовых данных были разработаны и в других странах. Так, например, в СССР в этой области действовала система
кодирования КОИ-7 (код обмена информацией, семизначный). Однако под- держка производителей оборудования и программ вывела американский код ASCII на уровень международного стандарта, и национальным системам коди-
рования пришлось «отступить» во вторую, расширенную часть системы коди- рования, определяющую значения кодов со 128 по 255. Отсутствие единого стандарта в этой области привело к множественности одновременно дейст-
вующих кодировок. Только в России можно указать три действующих стандар-
та кодировки и еще два устаревших.
Так, например, кодировка символов русского языка, известная как коди-
ровка Windows-1251, была введена «извне» – компанией Microsoft, но, учитывая широкое распространение операционных систем и других продуктов этой ком- пании в России, она глубоко закрепилась и нашла широкое распространение. Эта кодировка используется на большинстве локальных компьютеров, рабо- тающих на платформе Windows. Де-факто она стала стандартной в российском секторе World Wide Web.
Другая распространенная кодировка носит название КОИ-8 (код обмена информацией, восьмизначный) – ее происхождение относится ко временам дей-
ствия Совета Экономической Взаимопомощи государств Восточной Европы.
На базе этой кодировки ныне действуют кодировки КОИ8-Р (русская) и КОИ8-
У (украинская). Сегодня кодировка КОИ8-Р имеет широкое распространение в компьютерных сетях на территории России и в некоторых службах российского сектора Интернета. В частности, в России она де-факто является стандартной в сообщениях электронной почты и телеконференций.
Международный стандарт, в котором предусмотрена кодировка символов русского алфавита, носит название кодировки ISO (International Standard
Organization – Международный институт стандартизации). На практике данная кодировка используется редко.
В связи с изобилием систем кодирования текстовых данных, действующих в России, возникает задача межсистемного преобразования данных – это одна
из распространенных задач информатики.
Если проанализировать организационные трудности, связанные с создани-
ем единой системы кодирования текстовых данных, то можно прийти к выводу,
что они вызваны ограниченным набором кодов (256). В то же время очевидно, что если, например, кодировать символы не восьмиразрядными двоичными числами, а числами с большим количеством разрядов, то и диапазон возмож-
ных значений кодов станет намного больше. Такая система, основанная на
16-разрядном кодировании символов, получила название универсальной – UNICODE. Шестнадцать разрядов позволяют обеспечить уникальные коды для
65 536 различных символов — этого поля достаточно для размещения в одной таблице символов большинства языков планеты.