Книга: Веб-дизайн
ОДНОБАЙТОВЫС КОДИРОВКИ
ОДНОБАЙТОВЫС КОДИРОВКИ
Задействовав в кодировке 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 (с кодами от 128 до 255) уже закреплено то или иное употребление, и чтобы разместить в этом же диапазоне кириллический алфавит, приходится чем–то жертвовать. Разумеется, наименее ценные кодовые позиции, замещение которых нанесет меньше всего ущерба функциональности системы, в каждом случае свои, и чаще всего необходимые для полного набора кириллицы 66 знакомест (включая букву «ё», которая традиционно выносится за пределы основного алфавита) не удается расположить подряд. Этим и объясняется тот факт, что ни в одной из кодировок, кроме ISO 8859–5 и Unicode, русские буквы не идут сплошным блоком. В некоторых кодировках допускаются даже отклонения от алфавитного порядка — в частности, в КОИ 8 расположение русских букв определяется, как это ни смешно, алфавитом тех латинских букв, которые на клавиатурах советского производства располагались на одних клавишах с соответствующими буквами кириллицы: например, буква «Ю» стояла на одной клавише с символом «@», идущим в ASCII перед латинской «А», и потому стала в КОИ 8 «первой буквой алфавита».
Семейство 8859. Похожая ситуация с конкурирующими платформами и операционными системами и, как следствие, с конкурирующими несовместимыми кодировками наблюдается и в других языках, пользующихся своим собственным алфавитом или даже латинским алфавитом с расширениями. Международная организация по стандартизации (International Standards Organization, ISO) попыталась навести порядок в восьмибитных кодировках, создав серию кодировок ISO 8859, расширяющих таблицу ASCII для латинских букв с диакритикой и лигатур (кодировка ISO 8859–1), кириллицы (ISO 8859–5), арабского (ISO 8859–6), греческого (ISO 8859–7), иврита (ISO 8859–8) и других алфавитов.
Если кодировка ISO 8859–5 для кириллицы так и не прижилась, первая из этой серии — кодировка ISO 8859–1, известная также под именем Latin?1, — сумела стать общепринятым стандартом для кодирования «расширенной» латиницы. В эту кодировку включены почти все символы, употребляющиеся в письменностях западноевропейских языков — французского, немецкого, испанского и т. д. По аналогии с ASCII первые 32 позиции во второй половине кодировок серии ISO 8859 (коды со 128 по 159 включительно) объявлены «неиспользуемыми». На сей раз, однако, производители программ решили обойти этот запрет. Так, большинство шрифтов для Windows соответствуют кодировке ISO 8859–1 начиная с позиции 160 до конца таблицы, но в диапазоне 128–159 размещают некоторые дополнительные символы (в частности, длинное тире и символ «торговой марки», стр.233). Поскольку HTML обязан соответствовать стандарту Latin?1 (а начиная с версии 4 — Unicode), числовые подстановки (стр. 29) не могут ссылаться на коды из этого диапазона.
- Кодировки текста
- Текстовые форматы и кодировки, или Почему иногда вместо текста я вижу абракадабру?
- Преобразование символов из кодировки ASCII в Unicode
- ДВУХБАЙТОВЫЕ КОДИРОВКИ
- 4.2. Кодировки в пост-ASCII мире
- Кодировки в XSLT-преобразованиях
- 4.2.6. Преобразование из одной кодировки в другую
- Поддержка кодировки UNICODE
- Рис. 206. Изменение кодировки.
- Установка кодировки символов
- 12.3. Русификация и кодировки
- 4.2.3. Распознавание кодировки