- •Сообщения, данные, сигнал, атрибутивные свойства информации, показатели ее качества и формы представления
- •Содержание
- •Введение
- •Атрибутивные свойства информации
- •Показатели качества информации
- •Формы представления информации
- •Преобразование и кодирование информации с помощью знаковых систем
- •Аналоговый и дискретный способы представления изображения и звука
- •Типы данных
- •Двоичное кодирование данных
- •Кодирование целых чисел
- •Кодирование текстовых данных
- •Хранение данных на магнитных носителях
- •Системы передачи информации в Интернете
- •Сравнение широкополосного и аналогового доступа к Интернету
- •Широкополосный доступ к Интернету
- •Выше скорость – меньше свободы
- •Список литературы
Кодирование текстовых данных
Для кодирования текста каждому символу из некоторого набора ставится в соответствие определённое двоичное число. Поначалу было принято каждый символ кодировать одним байтом. Количество возможных символов при этом равно 256.
ASCII (American Standard Code for Information Interchange – стандартный американский код для обмена информацией) – это международная кодовая таблица, охватывающая почти всю первую половину упомянутого пространства из 256 символов (коды от 32 до 127) (за коды 128–255 ASCII не отвечает, а область 0–31 оставляет для т. н. управляющих кодов, применяющихся для управления компьютерами1). С помощью ASCII кодируются строчные и прописные буквы латинского алфавита, цифры, все знаки препинания, а также различные специальные символы (%, #, &, -, *, $ и др.). Данный стандарт обязателен для всех стран и всех компьютеров.
Однако что же делать с другими буквами (греческими, турецкими, русскими, немецкими и т. д.)? Ведь, во-первых, 7 битов уже не хватит для их кодирования, а во-вторых, алфавит у каждой страны свой, так что подходящая для одной страны кодовая таблица не подойдёт для другой. Пришлось разрабатывать т. н. кодовые страницы (codepages). У всех них младшая часть (от 32 до 127) обязательно совпадает с ASCII, а старшая (от 128 до 255) отдана под тот или иной национальный стандарт. Это позволило правильно отображать и обрабатывать как латинские буквы, так и буквы национальных алфавитов на любом компьютере.
Кодовые страницы обозначаются трёх- или четырёхзначными числами, причём для каждой страны имеется свой набор допустимых кодовых страниц. К сожалению, для славянских языков, т. е. языков, использующих кириллицу, нет единых правил кодирования. Существует множество кодировок: ГОСТ, ISO, а также кодовые страницы, принятые крупными компаниями (IBM, Microsoft, Apple) для стран СНГ. Дополнительную неразбериху вносит то, что кодировки могут быть ориентированы на определённую ОС (например, на MS-DOS, OS/2, Windows, UNIX, Mac OS) и на ту или иную область применения (например, на документооборот, WWW, электронную почту).
В связи с этим назовём только две наиболее популярные для нашей страны кодовые страницы: CP 866 (для MS-DOS и OS/2) и CP 1251 (для Windows). “CP” как раз и означает “codepage”. Обе кодовые страницы содержат русские буквы, а также уникальные буквы украинского и белорусского алфавитов.
Что же касается русскоязычной части Интернета, то в WWW большинство документов кодируется с помощью CP 1251, а для сообщений электронной почты широко используется кодировка КОИ-8 (код обмена информацией 8-разрядный). Существуют русская и украинская версии этой кодировки: КОИ8-Р и КОИ8-У соответственно.
Однобайтовое кодирование текста имеет ряд недостатков:
Поскольку один и тот же байт в разных кодировках может означать разные символы, для правильного распознавания последних программе нужно сообщить помимо кода ещё и номер кодовой страницы.
Вследствие небольшой длины кода (1 байт) соответствующие кодовые страницы ориентированы, в первую очередь, на европейские алфавиты и не подходят для кодирования иероглифов. Т. е. жители восточных стран не смогут работать с компьютером на родном для них языке, оставаясь в рамках 1-байтового кодирования.
Поскольку каждый документ создаётся в определённой кодировке, в одном документе нельзя использовать несколько кодовых страниц. Это значит, что в тексте не смогут соседствовать, скажем, русские и турецкие буквы.
От перечисленных недостатков свободен новый двухбайтовый способ кодирования текста (Unicode), предложенный в 1991 г. Он позволяет закодировать очень большое количество символов из разных алфавитов (216 = 65 536). В документах Unicode могут соседствовать математические символы, кириллица, латинские, греческие буквы и даже китайские иероглифы.
Согласно стандарту Unicode каждой письменности выделяется своя область кодов. Так, для латиницы отведена область с кодами от 0 до 255, называемая Latin-1 (её младшая часть совпадает с кодами ASCII). Далее идут области для расширенной латиницы, фонетических и диакритических знаков, греческого и коптского языков. Символам кириллицы выделена область кодов от 1024 до 1279. В следующих занятых областях размещаются символы армянской письменности (1328–1423), иврита (1424–1535), арабской письменности (1536–1791) и т. д.
В таблице Unicode предусмотрены места для букв практически всех известных алфавитов, включая древнеегипетские иероглифы. В результате пользователь может набирать текст одновременно на русском и греческом языках, делать вставки на японском или грузинском. При этом может использоваться один-единственный шрифт Unicode.
Отметим, что в реальных файлах шрифтов Unicode содержатся далеко не все 65 536 возможных символов. Файл с таким количеством символов имел бы немыслимый размер – порядка 100 Мбайт. В обычно используемых шрифтах с т. н. панъевропейским набором символов WGL4 содержатся всего 653 символа, т. е. порядка 1% от полного набора Unicode.
Отдельную проблему представляет Unicode для Интернета. Дело в том, что Unicode непосредственно не совместим с большинством протоколов Интернета, т. к. коды Unicode могут принимать любые значения от 0 до 65 535, а протоколы Интернета обычно используют байты 0–31, 254 и 255 в качестве служебных. Совместимость достигается благодаря специальным форматам преобразования – UTF (Unicode Transformation Format), среди которых наиболее популярен UTF-8. Применение UTF-8 делает Unicode-тексты пригодными для передачи через Интернет.
