Кодирование текстовой информации в Интернет

Характеристика проблемы кодирования

Текстовые файлы представляют собой наиболее распространенный тип данных не только в Интернете, но и во всем компьютерном мире. Хотя на первый взгляд с ним не должно быть особых проблем, существуют два очень важных фактора. Первый - чрезвычайно большое количество символов, требующихся для поддержки различных языков. Американские программисты для работы со 128 символами используют набор символов US ASCII. ASCII - аббревиатура от  англ. American Standard Code for Information Interchange «Американский стандартный код для информационных обменов». ASCII представляет собой соглашение о стандарте представления букв, цифр,  символов и др. Важно помнить, что бо-лее 250 символов необходимы только для того, чтобы управиться с парой десят-ков европейских языков, базирующихся на латинском алфавите. Для поддержки других алфавитов (кириллицы, греческого, иврита, арабского, деванагари и др.) дополнительно требуется еще более сотни символов, китайский, япон-ский и корейский языки добавляют к этому списку еще более десяти тысяч ие-роглифов. Времена, когда в Интернете преобладали англоязычные пользователи, проходят. Гибкие разработчики программного обеспечения использовали эту благоприятную возможность для создания многоязычных программ. Далее мы рассмотрим возможные варианты решения проблемы кодирования информации в Интернете с учетом возможных наборов символов в различных моделях компьютеров и возможностей их программного обеспечения. Это позволит представить с системных позиций реализацию процедуры доступа к информационным ресурсам Интернета при использовании разноязычных документов и соответствующего программного обеспечения для различных компьютерных платформ.
Второй фактор характеризуется тем, что чисто текстовые данные встреча-ются все реже и реже. Пользователи Интернета хотят, чтобы распечатываемые документы содержа-ли графики, диаграммы, примечания, заголовки и чтобы при этом использовались различные шрифты. Принимаемые из сети документы, в свою очередь, могут включать мультипликацию, ссылки на сетевые базы данных и звуковое сопровождение. В результате комбинации различных типов данных образуются документы мультимедиа. Текстовый формат (так как он обычно используется как базовый) является стартовой точкой многих форматов документов муль-тимедиа. Многие из тех форматов в Интернете не просто текстовые форматы, более корректно их следовало бы называть форматами документа. Подобные форматы предоставляют остов для комбинирования текстовых, графических и других форм данных.

2.2.Кодирование набора символов в компьютерах
Рассмотрим как программы и исходные данные для решения  прикладных задач (тексты документов, наименования полей баз данных,  даты поступления и ввода информации в ЭВМ  и  другие сведения) записываются в оперативную память компьютера на магнитный или оптический диск и в каком виде они там хранятся.  Запись указанной информации осуществляется аналогично записи звука на магнитофонную ленту.  Отличие заключается в том, что она кодируется в виде "0" и "1",  а магнитофонная запись построена по непрерывному аналоговому принципу. В магнитных лентах (МЛ) намагниченность соответствует частоте и амплитуде звуковых колебаний. А в  магнитных или оптических дисках (МД и ОД) на ПЭВМ намагниченность имеет два состояния: "0" или "1" . Последнее обстоятельство используется  для битовой (байтовой) формы представления в ПЭВМ информации (текстов, отдельных знаков, цифр и т.д.).
Рассмотрим определение бита с учетом количественных характеристик общих положений теории информации. Независимо от содержания, принимая за основу только новизну принимаемых сведений (событий), можно дать количественную оценку принимаемой или хранимой информации. Только новизна является следствием неопределенности сведений о предмете или явлении, а неопределенность поддается измерению.
Обобщая понятие новизны, можно заранее любое описание события или факта (то есть информацию о них) представить в виде снятия неопределенности. Вот почему в теории количество информации есть мера снятой неопределенности одной из нескольких случайных величин (событий) в результате их наблюдения. Если величины независимы, то количество информации равно нулю.
Самым простым случаем является выбор одного из двух альтернативных событий. Поэтому за единицу целесообразно принять количество информации, заключенное в выборе одного из двух равновероятных событий. Эта единица называется двоичной единицей или битом. Бит в своем названии происходит от начальной и последних двух букв англ. binary digit (bit).
Итак, один бит - это количество информации, заключенное в снятии неопределенности при  выборе одного из двух равновероятных исходов (событий). Например, бросание монеты - "цена" или "герб", "да" или "нет", "истина" или "ложь".  Эти состояния равновероятных и характеризуют полную систему событий. Таким образом, под битом в ПЭВМ, МЛ, МД и ОД будем понимать место (разряд, регистр), где равновероятно могут быть записаны "0" или "1".
Если информация имеет более сложную структуру,  чем  двухальтернативную. Например, светофор (красный, зеленый, желтый). Обозначим: красный - 00, желтый - 01, зеленый - 10 и 11 - свободный. Для обозначения количества информации 1 бит мало,  2 бита - некоторый избыток,  одна из четырех возможностей - лишняя. В теории информации это существенно, а для кодирования информации в ПЭВМ не будем обращать на это внимание.
Таким образом, формулу измерения единицы количества информации можно получить эмпирически: Для снятия неопределенности одного из двух равновероятных событий нужен 1 бит информации, из 4-х равновероятных событий - 2 бита, из 8-ми равновероятных событий - 3 бита, из 16-ти равновероятных событий - 4 бита, из 32-х равновероятных событий - 5 бита, из 64-х равновероятных событий - 6 бита, из 128-и равновероятных событий - 7 бита, из 256-и равновероятных событий - 8 бита и т.д.
Если сообщение указывает на появление одного из N равновероятных событий, то оно несет количество информации, равное
 .

2.3.Определение требуемого  количества информации для ввода содержательной информации в память ПЭВМ.
Таким образом, любое целое число (букв, знаков, событий) мы можем закодировать в двоичной системе счисления с  помощью только "0" или "1". Этот факт мы возьмем за основу для того, чтобы обозначать любые объекты, о которых желаем хранить информацию, то есть перечислить их.
Например, переномеруем (закодируем) буквы русского  (украинского)  алфавита - кириллицы (вариант). С учетом наличия 32 букв в алфавите число бит для памяти ПЭВМ определим из формулы:   [бит]. Для русского алфавита указанное допущение справедливо в случае, если «е» и «ё» считать одной буквой.
Если различать прописные и строчные буквы кириллицы, то необходимо  [бит]. Вариант кодирования указанных букв можно представить в следующем виде:
А - 000000  Б - 000001  В - 000010
                                             а - 100000   б - 100001  в - 100010 и т.д.
Для кодирования латинских букв (их существенно меньше, чем букв кириллицы) необходимо еще 1 бит, итого    [бит].
Для кодирования цифр и других знаков ($, #, % ,., ^, &, *, (, ), | и  т.д.) необходимо добавить еще 1 бит,  итого   [бит].
Таким образом, для обозначения (кодирования) любого из 256 букв кириллицы, латиницы, цифр и знаков достаточно будет 8 разрядов или 8 бит.  То есть с помощью 8 бит можно представить практически любой текст латиницы и кириллицы на ПЭВМ.
Восемь бит образует более крупную единицу количества информации  8 бит = 1 байт.
Итак, одна буква или любой знак несет один байт информации. Но с точки зрения теории информации это будет в том случае, если появление всех букв и знаков в тексте равновероятно. Такая ситуация в любом тексте не реальна, хотя бы потому, что после двух согласных букв в слове,  как правило, следует гласная и т.д. Но с точки зрения представления информации в ПЭВМ  это ограничение о равной вероятности всех знаков можно принять. В результате байт можно представить как единицу измерения информационной емкости различных устройств компьютера (оперативной, постоянной памяти, гибких, жестких и оптических дисков).
Часто для измерения информационной емкости  ПЭВМ используются более крупные единицы:  1 килобайт=1024 байт, 1 мегабайт=1024 килобайт, 1 гигабайт=1024 мегабайт.
С учетом рассмотренных общих положений можно предварительно оценить требуемый размер (емкость) оперативной и внешней памяти компьютера для решения конкретных прикладных задач пользователя.
 

2.4.Характеристика набора символов
Если критически посмотреть на разнообразные материалы о символах и наборах символов, то наверняка в конце концов можно прийти к выводу, что опираться на по-нятие «символ» крайне сложно. Оно имеет так много различных смысловых от-тенков, что есть смысл избегать слов «символ» и «набор символов» в тех случаях, когда возможно разночтение. Специалисты в области информационных технологий вообще считают термин "Набор символов" является ошибочным и допускает разночтение понятий [1].
Большинство пользователей уверены в том, что A и A, это один и тот же сим-вол, несмотря на то, что они выглядят по-разному. Для уточнения внешнего ви-да соответствующего символа типографы используют термин глиф (glyph). Так, несмотря на то, что все эти глифы Ґ, A, A, A, A, A, A, A, A   представляют собой один и тот же символ, несложно заметить, что они разные. Говоря более точно, глиф есть специфическое визуальное представление символа.
Конечно, мало кого интересует вид отдельно взятого символа или глифа. За-частую надо, чтобы смотрелся хорошо весь текст в целом, то есть имеет смысл говорить о подборке символов. Даже в американском английском она должна содержать пятьдесят два прописных и строчных символа, десять цифр и разно-образные знаки пунктуации. Такую подборку называют репертуаром (repertoire). Соответствующий набор глифов, по одному для каждого из симво-лов, называют шрифтом.
Существует много различных репертуаров символов. Прежде всего, это мно-гообразие вызвано особенностями алфавитов различных языков. Кроме того, некоторым пользователям для работы требуются специальные символы. Так, например, издатели используют символ ©,  игрокам в бридж потребуются карты различных мас-тей (§, §,©, Є), а математикам — специальные символы (е,Ц, т). Конечно, избыточ-ное количество репертуаров символов будет лишь вносить излишнюю сумятицу, поэтому наблюдается тенденция к уменьшению их числа.

2.5.Кодирование набора символов форматов файлов в Интернете
Большая часть людей представляют символы двумя спосо-бами. Во-первых, с помощью соответствующего изображения, напри-мер &. Во-вторых, с помощью соответствующего имени. Например, при-веденный выше символ называется амперсандом. Многие из форматов файлов, которые применяются в Интернете, используют имена для менее распро-страненных символов. Например, в языке HTML (гипертекстовый язык описания документов, Hyper-Text Markup Language) ис-пользуются такие имена, как &аmp для & и &Igrave для Н. (Обратите внимание на то, что все имена в HTML начинаются амперсандом и заканчиваются точкой с запятой.)
Это наименее корректный подход, так как имена, в свою очередь, представ-ляют собой последовательности символов. Для компьютера же по крайней мере некоторые символы необходимо пред-ставлять в виде чисел, с которыми он манипулирует наиболее естественным об-разом. Когда же имеется достаточное количество символов, представленных таким образом, то их можно использовать для написания остальных имен. Для этого существуют два близких подхода: набор кодов символов (coded character set) просто ставит в соответствие каждому из символов число, в то время как при кодировании символов (character encoding) каждая последовательность сим-волов представляется в виде последовательности значений байтов (см. п.2.3).
Набор кодов символов подразумевает, что каждый символ - это единствен-ное число. Например, набор кодов символов ISO Latin 1 использует число 65 для кодировки символа А, 126 для ~ и 241 для ¤. Если есть соответствующая последовательность чисел, вы можете просто посмотреть, какое число в таблице представляет какой символ.
Конечно, в различных странах и языках используются различные репертуа-ры символов. Удобнее всего использовать для кодирования символов числа от нуля до 255 (всевозможные значения одного байта). Правда, имея в распоряже-нии только 256 чисел, невозможно дать уникальный код любому символу. По-этому были разработаны различные наборы кодов символов. Упомянутый выше набор кодов символов ISO Latin 1 был создан организацией ISO (International Organization for Standardization, Международная организация по стандартиза-ции) для представления всех символов, необходимых для определенной группы языков (в данном случае для тех языков Западной Европы, которые исполь-зуют латинский алфавит). Прочие наборы кодов пытаются охватить другие группы символов (как в учебном варианте было рассмотрено в п.2.3). Наиболее популярные компьютерные системы, кроме того, имеют собственные специфические варианты наборов символов (так, например, в MS-DOS и Windows используются «кодовые страницы» фирмы IBM).
Самый простой способ кодирования символов базируется на едином наборе кодов символов, содержащим 256 (или менее) кодов. Если в распоряже-нии пользователя имеется текстовый файл, закодированный таким образом, то можно взять из него любой байт и посмотреть в таблице, какой символ соответствует этому значению байта. Если один текстовый файл использует сразу несколько наборов кодов символов, все несколько усложняется. В этом случае вы имеете специаль-ные коды символов, информирующие программу просмотра файла о том, когда она должна переключиться на другой набор кодов символов. В другом между-народном стандарте, ISO 2022, описывается один из способов переключения ме-жду наборами кодов символов. При этом  невозможно просто посмотреть на байт из середины файла и узнать, что он означает. Чтобы уви-деть, есть ли специальная последовательность, указывающая на замену кодовой страницы, необходимо прочесть весь файл целиком с самого начала. И только после этого можно будет определить, какой кодовой страницей пользоваться.
Такие языки, как китайский, содержат значительно больше 256 символов, поэтому для кодирования каждого из них используют несколько байтов. При-чем при таком кодировании используются разнообразные подходы. В одном из вариантов каждому символу соответствует один байт, а для представления всего спектра символов используется несколько наборов кодов. При другом подходе каждому символу соответствует несколько байтов. Для экономии места зачас-тую эти два подхода комбинируются: некоторые символы кодируются с  помощью одного байта, в то время как для других используются два или более байтов. Читать такие файлы (например, с текстом на китайском языке), конечно, сложнее, чем те, которые используют столь распространенный в западных про-граммах подход «один байт - один символ».
Одной из попыток обобщения этих подходов является стандарт Unicode, который так же известен, как ISO 10646. В Unicode для кодирования символов используется диапазон чисел от нуля до 65 536 (256 х 256). Такой широкий диапазон позво-ляет представлять в численном виде символы языка людей из любого уголка планеты. Многие международные стандарты для обеспечения поддержки не-скольких языков стремятся к соблюдению Unicode. Возможно, одна из следующих вер-сий HTML будет также поддерживать этот стандарт. В настоящее время в качестве стандарта для кодирования  символов в языке HTML в основном используется набор кодов символов ISO Latin 1. Хотя имеются серьезные попытки для того, чтобы язык HTML поддерживал более широкий репертуар символов.

2.6.Оформление текста в Интернете
Интернет - это свободное объединение компьютеров. В нем сплавляется воедино интересы пользователей на основе различных операционных систем: Macintosh, Unix, MS DOS, Amiga, Atari, OS/2, Windows и др. В результате такой консолидации границы между компьютерами, построенных на различных аппаратурных и программных платформах постепенно стираются. Все это становится возможным в случае отсутствия путаницы с разными форматами файлов, которыми обмениваются пользователи сети. Чем шире спектр компьютерных систем, на которых можно работать с определенным форматом файлов пользователя, тем больше у него шансов завоевать популярность в Интернете.
Возникает вопрос «А нужно ли это обсуждать?» Увы, придется, так как Internet - сеть международная. Многие годы Интернет преимущественно была сетью Соеди-ненных Штатов и потому американский английский негласно был «официаль-ным» языком Интернета. Сейчас  ситуация существенно меняется. Даже когда текстовые файлы написа-ны на американском английском, нередко они используют не ISO Latin 1, а другую кодовую таблицу.
Другая причина, по которой необходимо это учитывать, заключается в том, что даже в Соединенных Штатах кодирование символов происходит по-разному на различных компьютерных системах.
Из-за того, что различные компьютерные системы используют разные набо-ры кодов символов, эта проблема получила широкое распространение. Ее мож-но решить двумя способами. Первый способ предполагает использование всеми  одной и той же системы кодирования (что, видимо, случится не скоро). При втором способе в каждом текстовом сооб-щении необходимо явно указывать, какая кодировка символов используется. Интеллектуальное программное обеспечение соответствующего компьютера сможет это сообщение корректно воспроизвести. С появлением новых стандартов программного обеспечения вто-рая возможность становится все более и более реальной.
Многие текстовые файлы передаются в виде простого текста (plain text). К не-счастью, «простой» в данном случае вовсе не является синонимом слова неслож-ный. Простой текст трудно сделать привлекательным и легко читаемым, так как в нем нет шрифтов разных начертаний, графики, заголовков, подзаголовков, примечаний и т. п. Эти дополнительные особенности носят название разметки текста (rnarkup). Как уже говорилось в предыдущем разделе, один из простых способов разметки текста включает использование для обозначения специаль-ных символов имен. Ниже мы рассмотрим другие способах оформления текста.

2.7.Физическая и логическая разметка текста
Прежде всего необходимо разобраться в разнице между физической (physical) и логической (logical) разметкой текста. При использовании физической разметки указывается точный вид каждого фрагмента текста. Например, «центрованный текст, 14-м кеглем, жирный, сжатый, гарнитура Futura». При логической раз-метке текста указывается логическое значение данного фрагмента, например, «это заголовок раздела».
Эти два способа разметки предназначаются для использования в разных си-туациях. Чтобы распечатать текст на принтере, необходимо использовать физи-ческую разметку. То есть должно быть принято решение о размере полей, формате примечаний, а также о величине абзацного отступа в начале каждого параграфа. Ранние версии текстовых процессоров использовали только физиче-ский тип разметки. При этом для каждого фрагмента текста необходимо указывать его шрифт, размер и стиль.
При обмене информацией с другими людьми на физическое оформление тек-ста накладывается ряд ограничений. Например, стандартный лист бумаги в раз-ных странах имеет различный размер. И то, что неплохо смотрелось на бумаге, соответствующей американским стандартам, будет выглядеть крайне непри-глядно на более длинном и узком листе формата А4, который используется в Европе. С чисто электронными документами, например, с документами, полученными из Интернета, ситуация обстоит еще хуже. Размер экрана, его разрешение, шрифты и поддержка графи-ки - все эти параметры широко варьируют от одной компьютерной системы к другой. Потому луч-ше всего, если документ можно будет подогнать под имеющийся дисплей, заново его отформатировав.
По этим причинам все чаще и чаще компьютерные приложения используют логическое оформление текста. При логическом оформлении каждая часть до-кумента связывается с его логическим значением. Например, некоторые слова будут иметь пометку «выделить», либо реже «курсив». При распечатывании до-кумента или выводе его на экран логический формат будет конвертироваться в соответствующий данной ситуации физический формат. Слова, которые необ-ходимо было выделить на системах, не поддерживающих курсив, будут под-черкнуты. В тех же странах, где принято использовать полужирный шрифт, отмеченные слова будут выделены с его помощью.
В некоторых ситуациях логическое оформление крайне важно. Например, в случае обмена электронными документами типа страниц World Wide Web или при создании и публикации объемных трудов (таких, как книги). Многие изда-тели хранят книги в электронном виде, используя SGML (Standard Generic Markup Language, стандартный обобщенный язык разметки документов). Такой подход помогает упростить процесс создания книги (не надо постоянно следить за тем, чтобы соблюдалась разметка страницы и сохранялись выбранные шриф-ты). Кроме того, он позволяет легко изменять размер книги и ее формат.
Преобразование логической разметки в физическую осуществляется с помо-щью таблицы стилей (style sheet). В таблице стилей просто перечисляются спо-собы отображения каждого логического элемента. В различных системах управление процессом преобразования может различаться в деталях. В одних случаях логи-ческая разметка задается с помощью текстовых команд, и входной документ об-рабатывается для создания выходного документа, содержащего физическую разметку. В других для логического представления используется двоичный формат текстового процессора, а пользователь редактирует окончательный ва-риант физически размеченного документа.
В заключительной стадии подготовки документа для использовании его в Интернете производится сохранение разметки.  Это осуществляется следующим образом. Для передачи данных на другой компьютер естественно отпра-вить их в текстовом виде. Если же важно сохранить разметку, то можно исполь-зовать один из трех подходов.
Во-первых, можно сохранить разметку, включив ее описание в текст На-пример, представив фрагмент текста: «...принять правильное реше-ние...» в виде «...принять   <bold>   правильное   <endbold> решение . . . ». Преимущество такого подхода в том, что файл по-прежнему ос-тается текстовым (хотя, конечно, выглядит он несколько странно), а следова-тельно, его легко передавать с компьютера на компьютер. Если у компьютера пользователя есть программное обеспечение, поддерживающее этот формат, то можно воссоз-дать документ в исходном виде. Но даже если подходящей программы нет, все равно в нем можно разобраться. Существует немало способов представле-ния разметки текста, один из которых Hyper Text Markup Language (HTML), использующийся в World Wide Web.
Во-вторых, сохранить разметку можно, передавая изображение каждой страницы. Таким образом работают факс-машины, они создают графическое изображение каждой страницы и передают его. Уязвимое место такого подхода в том, что получатель в результате имеет только изображение страницы. В след-ствие чего, чтобы отредактировать содержимое документа, получатель должен заново его набрать. Однако этот недостаток становится достоинством в том случае, когда необходимо  получателю предоставить возможность легко внести изменения в от-правленный  документ. Факс-модем позволяет передавать документы напрямую с одного компьютера на другой. Несмотря на то, что переданный  документ имеет текстовый формат, его крайне сложно преоб-разовать таким образом, чтобы содержимое файла можно было отредактиро-вать. Проще набрать все заново.
Третий способ сохранения разметки— разработка особых файлов, содер-жащих не только текст, но и информацию о том, как он должен быть оформлен. Большинство текстовых процессоров и настольных издательских систем исполь-зуют такой подход. Основная сложность заключается в том, что в результате почти все текстовые процессоры и настольные издательские системы использу-ют свои форматы. Наиболее дорогие программы обычно могут читать файлы, созданные с помощью программ-конкурентов, но это все, на что вы можете рас-считывать. А потому вряд ли стоит использовать специальные форматы файлов для создания общедоступных документов.
 
 
 © Copyright Smolyanitsky B.M., 1998
 © Publishing by Boldovsky V.Y., 1998