Системи кодування ASCII, Windows 1251, Unicode та інші. Кодування символьної інформації
При введенні в комп’ютер символьної інформації символи (літери, цифри, знаки), що вводяться, кодуються певними комбінаціями нулів і одиниць, а при виведенні їх для читання людиною (на монітор або принтер) за кодом символу будується зображення символу.
Кожному символу призначається код — послідовність з фіксованої кількості нулів і одиниць зі взаємно однозначною відповідністю. Використовуючи одну двійкову цифру (один біт) можна закодувати всього 2 символи. Двохбітових комбінацій може бути чотири→00; 01, 10, 11, тобто 22, за допомогою трьох бітів можна одержати вісім різних комбінацій нулів і одиниць (23). Оптимальна кількість символів, які використовуються при наборі різних текстів, дорівнює приблизно 250 (літери латинські і кирилиця, заголовочні і рядкові, розділові знаки, цифри, математичні знаки, елементи псевдографіки). В двійковій системі така кількість символів може бути закодована послідовністю з 8 біт (28=256), тобто одним байтом. Якщо кожному символу алфавіту поставити у відповідність певне ціле число, то за допомогою двійкового коду можна однозначно кодувати текстову інформацію. Вісім двійкових розрядів достатні для кодування 256 різних символів. Цього вистачить, щоб зобразити різними комбінаціями восьми бітів всі символи англійської, української і російської мов, як рядкові, так і прописні, а також розділові знаки, символи основних арифметичних дій і загальноприйняті спеціальні символи.
Для того, щоб весь світ однаково кодував текстові дані, потрібні єдині таблиці кодування. Для англійської мови, що захопила де-факто нішу міжнародного засобу спілкування Інститут стандартизації США (ANSI — American National Standard Institute) ввів в дію систему кодування ASCII (American Standard Code for Information Interchange — стандартний код інформаційного обміну США). В системі ASCII закріплено дві таблиці кодування — базова і розширена. Базова таблиця закріплює значення кодів від 0 до 127, а розширена відноситься до символів з номерами від 128 до 255. Перші 32 коди базової таблиці, починаючи з нульового, віддано виробникам апаратних засобів (в першу чергу виробникам комп’ютерів і друкуючих пристроїв). В цій області розміщуються так звані управляючі коди, яким не відповідають ніякі символи мов, і, відповідно, ці коди не виводяться ні на екран, ні на пристрої друку, але ними можна управляти тим, як проводиться виведення інших даних. Починаючи з коду 32 і закінчуючи кодом 127 розміщені коди символів англійського алфавіту, розділових знаків, цифр, символів арифметичних дій і деяких допоміжних символів. Базова таблиця кодування ASCII наведена в таблиці 2.
Підтримка виробників устаткування і програм вивела американський код ASCII на рівень міжнародного стандарту, і національним системам кодування довелося «відступити» в другу, розширену частину системи кодування, що визначає значення кодів з 128 по 255. Відсутність єдиного стандарту в цій області привела до множинності одночасно діючих кодувань. Тільки в Росії можна вказати три діючі стандарти кодування і ще два застарілих.
Для кодування символів російської і української мов, відоме як система кодування Windows-1251, було введено «ззовні» — компанією Microsoft, але, враховуючи широке розповсюдження операційних систем і інших продуктів цієї компанії на Україні і в Росії, вона глибоко закріпилася і знайшла широке розповсюдження (таблиця 3). Це кодування використовується на більшості комп’ютерів, що працюють під управлінням операційних систем Windows.
Інше поширене кодування носить назву КОИ-8 (код обміну інформацією, восьмизначний) — її походження відноситься до часів дії Ради Економічної Взаємодопомоги держав Східної Європи. Сьогодні кодування КОИ-8 має значне розповсюдження в комп’ютерних мережах на території Росії і в російському секторі Інтернету.
Таблиця 2. Базова таблиця кодування ASCII
32 пропуск | 48 0 | 64 @ | 80 Р | 96 ` | 112 p |
33 ! | 49 1 | 65 А | 81 Q | 97 а | 113 q |
34 " | 50 2 | 66 B | 82 R | 98 b | 114 r |
35 # | 51 3 | 67 C | 83 S | 99 c | 115 s |
36 $ | 52 4 | 68 D | 84 Т | 100 d | 116 t |
37 % | 53 5 | 69 Е | 85 U | 101 e | 117 u |
38 & | 54 6 | 70 F | 86 V | 102 f | 118 v |
39 ' | 55 7 | 71 G | 87 W | 103 g | 119 w |
40 ( | 56 8 | 72 Н | 88 X | 104 h | 120 x |
41 ) | 57 9 | 73 I | 89 У | 105 i | 121 у |
42 * | 58 : | 74 J | 90 Z | 106 j | 122 z |
43 + | 59 ; | 75 K | 91 [ | 107 k | 123 { |
44 , | 60 < | 76 L | 92 \ | 108 i | 124 | |
45 - | 61 = | 77 М | 93 ] | 109 m | 125 } |
46 . | 62 > | 78 N | 94 ^ | 110 n | 126 ~ |
47 / | 63 ? | 79 О | 95 _ | 111 0 | 127 |
Таблиця 3. Кодування Windows 1251
128 Ђ | 144 ђ | 176 ° | 192 А | 208 Р | 224 а | 240 р | |
129 Ѓ | 145 ‘ | 161 Ў | 177 ± | 193 Б | 209 С | 225 б | 241 с |
130 , | 146 ’ | 162 ў | 178 I | 194 В | 210 Т | 226 в | 242 т |
131 ѓ | 147 “ | 163 Ј | 179 i | 195 Г | 211 У | 227 г | 243 у |
132 „ | 148 „ | 164 ¤ | 180 ґ | 196 Д | 212 Ф | 228 д | 244 ф |
133... | 149 • | 165 Ґ | 181 μ | 197 Е | 213 X | 229 е | 245 х |
134 † | 150 - | 166 ¦ | 182 ¶ | 198 Ж | 214 Ц | 230 ж | 246 ц |
135 ‡ | 151 - | 167 § | 183 · | 199 3 | 215 Ч | 231 з | 247 ч |
136 ? | 152 | 168 Ё | 184 ё | 200 И | 216 Ш | 232 и | 248 ш |
137 ‰ | 153 ™ | 169 © | 185 № | 201 Й | 217 Щ | 233 й | 249 щ |
138 Љ | 154 љ | 170 Є | 186 є | 202 К | 218 Ъ | 234 к | 250 ъ |
139 < | 155 > | 171 « | 187 » | 203 Л | 219 Ы | 235 л | 251 ы |
140 Њ | 156 \ | 188 j | 204 М | 220 Ь | 236 м | 252 ь | |
141 Ќ | 157 : | 173 - | 189 S | 205 Н | 221 Э | 237 н | 253 э |
142 Ћ | 158 ћ | 174 ® | 190 s | 206 О | 222 Ю | 238 о | 254 ю |
143 Џ | 159 џ | 175 Ї | 191 ї | 207 П | 223 Я | 239 п | 255 я |