Однобайтовые кодировки

Задействовав в кодировке ASCII старший бит, мы получаем дополнительные 128 знако­мест, которых должно хватить для кодирования, например, кириллического алфавита или набора каких-нибудь специ­альных символов. К сожалению, восьмибитных кодировок на свете существует гораздо больше, чем наборов символов, которые они кодируют. Очень характерна в этой связи ситуация с русским языком — анархия компьютеризации в нашей стране, наложившаяся на всемирную анархию конкурирующих компьютерных платформ и операционных систем, привела к тому, что для кириллицы существует сразу несколько однобайтовых кодовых таблиц. Хронологически одним из первых стандартов кодирования русских букв на компьютерах был КОИ8 («Код обме­на информацией, 8-битный»). Эта кодировка применялась еще в доисторические советские времена на компьюте­рах ЕС ЭВМ, и когда в середине 80-х появились первые русифицированные версии операционной системы UNIX, они унаследовали эту кодировку у своих «предков». Сеть Релком, открывшая в начале 90-х эпоху российского Интер­нета, в те годы состояла в основном из компьютеров с UNIX и потому также приняла кодировку КОИ8 в качестве стан­дартной. В результате КОИ8 является сейчас единственно допустимой кодировкой в русскоязычной электронной по­чте и телеконференциях Usenet и одной из кодировок, которые обязательно должна поддерживать любая русская веб-страница.

Вторая по значению в русском Интернете (и, безусловно, первая по употребимости на персональных компьютерах) кодировка — это стандартная кириллическая кодировка Microsoft Windows, обозначаемая аббревиатурой СР1251 («СР» расшифровывается как «Code Page», «кодовая стра­ница»). Все Windows-приложения, работающие с русским языком, обязаны понимать эту кодировку без перевода. Благодаря распространенности Windows кодировка СР1251, вместе с КОИ8, входит в абсолютный минимум коди­ровок, которые приходится поддерживать русскоязычным сайтам.

Реликтом эпохи MS DOS остается так называемая «альтер­нативная» кодировка, в терминологии фирмы Microsoft — кодировка СР866. И хотя в Интернете компьютеры с MS DOS — большая редкость, кодировка эта сохра­няет определенный авторитет благодаря тому, что она принята в качестве стандартной в операционной системе OS/2 и в некоммерческой сети Фидо. Поэтому изредка можно встретить сайты, предлагающие посетителям в ка­честве одного из вариантов и альтернативную кодировку MS DOS.

Однако первой фирмой, выпустившей русифицированную операционную систему, была все-таки не Microsoft, a Apple. И разумеется, русифицированные Макинтоши, появивши­еся в конце 80-х, имели свою собственную, ни с кем не совместимую кодировку кириллицы. Хотя в нашей стране компьютеры этой марки так и не приобрели популярности, сравнимой с их популярностью на Западе, в Сети можно встретить и кириллическую кодировку для Макинтошей.

Так и срослось.

Зачем, однако, вообще понадобилось создавать разные кодировки для одного и того же алфавита? Помимо соображений кон­куренции, вообще способствующих появлению несовместимых решений, изобретателями кодировок в первую очередь двигал чисто практический расчет. Как правило, еще до того, как операционная система русифици­руется, за символами из верхней половины таблицы ASCII (с кодами от I28 до 255) уже закреплено то или иное употребление, и чтобы разместить в этом же диапазоне кириллический алфавит, приходится чем-то жертво­вать. Разумеется, наименее ценные кодовые позиции, замещение которых нанесет меньше всего ущерба функциональности системы, в каждом слу­чае свои, и чаше всего необходимые для полного набора кириллицы 66 знакомест (включая букву «ё», которая традиционно выносится за пределы основного алфавита) не удается расположить подряд. Этим и объясняет­ся тот факт, что ни в одной из кодировок, кроме ISO 8859-5 и Unicode, русские буквы не идут сплошным блоком. В некоторых кодировках допус­каются даже отклонения от алфавитного порядка — в частности, в КОИ8 расположение русских букв определяется, как это ни смешно, алфавитом тех латинских букв, которые на клавиатурах советского производства рас­полагались на одних клавишах с соответствующими буквами кириллицы: например, буква «Ю» стояла на одной клавише с символом «@», идущим в ASCII перед латинской «А», и потому стала в КОИ8 «первой буквой алфавита».

 









.