logo
Трев_Lecture

3.1.Стандарти кодування символів ascii, ansi, кои-8 і unicode

Представлення символів в електронних виданнях базується на таблицях кодів, у яких кожному символу, що відображується на екрані відповідає код від 0 до 255. Перші 127 кодових комбінацій використовуються для латинських букв і цифр, знаків пунктуації і т.д. і, як правило, будуються на єдиному принципі.

Стандарт представлення символів ASCII - це 7-бітовий опис коду символу. Оскільки в персональних комп'ютерах використовуються байти, що складаються з 8 біт, виробники комп'ютерів часто визначають набори символів, що використовують 256 кодів замість 128 кодів ASCII. У результаті виходить «розширений набір символів» (extended character set), що містить у собі набір символів ASCII і до 128 інших символів.

На початку 80-х років виробники IBM PC вирішили розширити набір символів ASCII Коди від 20h до 7Ah - це виведені на дисплей символи з набору символів ASCII. Символи, що залишилися, є нестандартними чи, принаймні, на той момент були нестандартними.

Цей набір символів закодований у мільйонах мікросхем ПЗУ у відеоадаптерах, принтерах і мікросхемах BIOS. Він був розтиражований в апаратурі численних виробників IBM-орієнтованих комп'ютерів і периферії. Для множини програм, що працюють у текстовому режимі і написаних не для MS Windows, потрібно цей розширений набір символів, оскільки в них для виводу інформації на екран використовуються символи псевдографіки - символи блоків і ліній (коди від У0h до D0h).

Відомо кілька варіантів кодування символів IBM, що називаються «кодові сторінки» (code pages). Варіант, використовуваний у Сполучених Штатах Америки і більшості європейських країн, називається Code Page 437. У системах, розповсюджених у Норвегії, Данії, Португалії і деяких інших країнах Європи, використовуються інші спеціальні кодові сторінки, у яких міститься більша кількість спеціальних символів, необхідних для мов цих країн. Останнім часом деякі країни почали застосовувати кодову сторінку Code Page 850, у якій міститься менша кількість псевдографічних символів. За рахунок цього введені додаткові символи, знаки наголосу й інші спеціальні символи.

Розширений набір символів, що у більшості випадків використовують Windows і програми для Windows, називається набір символів ANSI (ANSI character set), фактично він є міжнародним стандартом ISO.

У нашій країні кодові комбінації починаючи з 128 використовуються для кодування символів кирилиці, математичних символів і іншої інформації. Причому для кожної платформи використовується своє розташування символів у кодовій таблиці. Так, відомі кодування Windows, Mac, DOS-OS/2, ISO (Dec) і КОІ-8. Тому приходиться здійснювати перекодування символів кирилиці електронних видань у залежності від платформи що використовується.

Слід зазначити, що існують нормативи: «Основне кодування Дст», «Альтернативне кодування Дст» і кодування КОІ-8. В останньому випадку символи кирилиці мають коди: А-Я - 224-254 (не за абеткою); а-я - 192-223 (не за абеткою).

На думку фахівців, «Альтернативне кодування Дст» використовує під кодування символів кирилиці позиції, де в кодуванні IBM розташовані символи національних алфавітів, грецькі букви і деякі математичні символи, що досить рідко використовуються.

Стандарт кодування символів UNICODE. Стандарт Unicode був запропонований некомерційною організацією Unicode Consortium, що була створена в 1991 р. Для представлення кожного символу в цьому стандарті використовуються два байти: один байт для кодування символу, іншої для кодування ознаки. Тим самим забезпечується інформаційна сумісність даного способу кодування зі стандартом АSСІІ.

Двохбайтовий опис кодів символів дає змогу закодувати дуже велике число символів з різних писемностей. Так, у документах Unicode можуть бути російські, латинські, грецькі букви, китайські ієрогліфи і математичні символи.

Кодовий простір Unicode розділено на кілька областей. Область з кодами від 0000 до 007F містить символи набору Latin 1 (молодші байти відповідають кодуванню ISO 8859-1). Далі йдуть області, у яких розташовані знаки різних писемностей, а також знаки пунктуації і технічних символів. Частина кодів зарезервована для використання в майбутньому (29000). 6000 кодових комбінацій залишено програмістам.

Символам кирилиці виділені коди в діапазоні від 0400 до 0451.

У документах Unicode використовуються різні шрифти. Як правило, файл шрифту Unicode містить накреслення не для всіх символів, визначених у стандарті, а лише для символів з деяких областей.

Деякі програми, наприклад ядро Windows NT, її графічний інтерфейс (GDI) і файлова система (NTFS), реалізовані з використанням Unicode. Програми, запущені в середовищі NT, можуть працювати також з однобайтними символами, кодування яких у цьому випадку відповідає встановленої за замовчуванням кодовій сторінці ANSI (для Росії - Windows Cyrillic).

Перед викликом деяких функцій програмного інтерфейсу NT програми, що працюють з кодовою сторінкою ANSI, перетворять однобайтні символи в Unicode. Щоб перетворення виконувалося без помилок, звичайно вказується країна в додатку Regional Settings. Такий же підхід використовується для коректної роботи з національними символами програм у середовищі MS-DOS.

На відміну від Windows NT ядро і графічний інтерфейс Windows 95 не використовують Unicode, а працюють з кодовими сторінками. Однак у цій системі перед–бачена можливість динамічної зміни наборів символів і розкладок клавіатури, що дає змогу створювати документи, що містять одночасно символи з різних наборів. Буфер обміну Windows 95 здатний зберігати тексти у форматі CF_UNICODETEXT. У складі Windows 95 і більш пізніх версій поставляється набір шрифтів Unicode, з якими, зокрема, можуть працювати програми Microsoft Office.

З'ясувати, які набори символів присутні в тому чи іншому шрифті Unicode, можна за допомогою стандартної утиліти Character Map (таблиця символів), включеної до складу Windows NT. Вибравши в списку Subset рядок Cyrillic, ви побачите таблицю із символами кирилиці, що відповідає кириличній області Unicode.

Використання Unicode значно спрощує створення багатомовних документів, публікацій і програмних додатків. Тому варто очікувати його широке застосування в електронних виданнях.