Кодування текстових даних

Якщо кожному символу алфавіту зіставити певне ціле число (наприклад, порядковий номер), то за допомогою двійкового коду можна кодувати і текстову інформацію. Восьми двійкових розрядів достатньо для кодування 256 різних символів. Цього вистачить, щоб висловити різними комбінаціями восьми бітів все символи англійської та російської мов, як малі, так і великі, а також знаки пунктуації, символи основних арифметичних дій і деякі загальноприйняті спеціальні символи, наприклад символ «§».

Технічно це виглядає дуже просто, проте завжди існували досить вагомі організаційні складності. У перші роки розвитку обчислювальної техніки вони були пов'язані з відсутністю необхідних стандартів, а в даний час викликані, навпаки, достатком одночасно діючих і суперечливих стандартів. Для того щоб весь світ однаково кодували текстові дані, потрібні єдині таблиці кодування, а це поки неможливо через суперечності між символами національних алфавітів, а також протиріч корпоративного характеру.

Для англійської мови, який захопив де-факто нішу міжнародного засобу спілкування, протиріччя вже зняті. Інститут стандартизації США (ANSI - American National Standard Institute) ввів в дію систему кодування ASCII (American Standard Code for Information Interchange - стандартний код інформаційного обміну США). В системі ASCII закріплені дві таблиці кодування - базова і розширена. Базова таблиця закріплює значення кодів від 0 до 127, а розширена відноситься до символів з номерами від 128 до 255.

Перші 32 коду базової таблиці, починаючи з нульового, віддані виробникам апаратних засобів (в першу чергу виробникам комп'ютерів і друкуючих пристроїв). У цій області розміщуються так звані керуючі коди, яким не відповідають ніякі символи мов, і, відповідно, не отримали ці коди виводяться ні на екран, ні на пристрої друку, але ними можна керувати тим, як проводиться висновок інших даних.

Починаючи з коду 32 по код 127 розміщені коди символів англійського алфавіту, розділових знаків, цифр, арифметичних дій і деяких допоміжних символів. Базова таблиця кодування ASCII приведена в таблиці 1.1.

Аналогічні системи кодування текстових даних були розроблені і в інших країнах. Так, наприклад, в СРСР в цій області діяла система кодування КОИ-7 (код обміну інформацією, семизначний). Однак підтримка виробників обладнання та програм вивела американський код ASCII на рівень міжнародного стандарту, і національним системам кодування довелося «відступити» в другу, розширену частину системи кодування, що визначає значення кодів з 128 по 255. Відсутність єдиного стандарту в цій галузі призвело до множинності одночасно діючих кодувань. Тільки в Росії можна вказати три діючих стандарту кодування і ще два застарілих.

Так, наприклад, кодування символів російської мови, відома як кодування Windows-1251, була введена «ззовні» - компанією Microsoft, але, з огляду на широке

поширення операційних систем і інших продуктів цієї компанії в Росії, вона глибоко закріпилася і знайшла широке поширення (таблиця 1.2). Ця кодування використовується на більшості локальних комп'ютерів, що працюють на платформі Windows.

Інша поширена кодування носить назву КОИ-8 (код обміну інформацією, восьмизначний) - її походження відноситься до часів дії Ради Економічної Взаємодопомоги держав Східної Європи (табліца1.3). Сьогодні кодування КОИ-8 має широке поширення в комп'ютерних мережах на території Росії і в російському секторі Інтернету.

Міжнародний стандарт, в якому передбачена кодування символів російського алфавіту, носить назву кодування ISO (International Standard Organization - Міжнародний інститут стандартизації). На практиці дана кодування використовується рідко (таблиця 1.4).

На комп'ютерах, що працюють в операційних системах MS-DOS, можуть діяти ще два кодування (кодування ГОСТ і кодування ГОСТ-альтернативна). Перша з них вважалася застарілою навіть в перші роки появи персональної обчислювальні-котельної техніки, але друга використовується і до цього дня (див. Таблицю 1.5).

У зв'язку з великою кількістю систем кодування текстових даних, що діють в Росії, виникає задача межсистемного перетворення даних - це одна з поширеною-наних завдань інформатики.

Схожі статті