os2.Кодування текстової інформації в Інтернеті

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

Текстові файли являють собою найбільш поширений тип даних не тільки в Інтернеті, але й в усьому комп'ютерному світі. Хоча на перший погляд з ним не повинно бути особливих проблем, існують два дуже важливих фактора. Перший - надзвичайно велика кількість символів, що потрібні для підтримки різноманітних мов. Американські програмісти для роботи з 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, A являють собою один і той же символ, нескладно помітити, що вони різні. Кажучи більш точно, гліф є специфічне візуальне подання символу.
Звичайно, мало кого цікавить вигляд окремо взятого символу чи гліфа. Часто треба, щоб текст в цілому мав гарний вигляд, тобто має сенс говорити про підбір символів. Навіть в американській англійській він повинен мати п'ятдесят два прописних і строкових символи, десять цифр і різні знаки пунктуації. Такий підбір називають репертуаром (repertoire). Відповідний набір гліфів, по одному для кожного символу, називають шрифтом.
Існує багато різних репертуарів символів. Перед усим, ця різноманітність викликана особливостями алфавітів різних мов. Крім того, деяким користувачам для роботи потрібні спеціальні символи. Так, наприклад, видавці використовують символ ©, гравцям в бридж потрібні карти різних мастей (§, §,©, Є), а математикам— спеціальні символи (е,Ц, т). Звичайно, надлишок репертуарів символів вноситиме лише надмірну плутанину, тому спостерігається тенденція до зменшення їх кількості.
 

2.5.Кодування набору символів форматів файлів в Інтернеті

Більша частина людей уявляють символи двома способами. По-перше, за допомогою відповідного зображення, наприклад &. По-друге, за допомогою відповідного імені. Наприклад, приведений вище символ називається амперсандом. Багато з форматів файлів, які застосовуються в Інтернеті, використовують імена для менш розповсюджених символів. Наприклад, у мові HTML (гіпертекстова мова описання документів, Hyper-Text Markup Language) використовуються такі імена, як &аmp; для & і Ì для Н. (Зверніть увагу на те, що всі імена в 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). На жаль, «простий» в даному випадку не є синонімом слова нескладний. Простий текст важко зробити таким, щоб легко читався і притягував увагу, бо в ньому немає шрифтів різних написань, графіки, заголовків, підзаголовків, приміток і т. п. Ці додаткові особливості мають назву розмітки тексту (markup). Як уже було згадано у попередньому розділі, один з найпростіших способів розмітки тексту містить використання для позначення спеціальних символів імен. Нижче ми розглянемо інші способи оформлення тексту.
 

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., Boldovsky V.Y.
Translate  © Boldovsky V.Y.