Emacs для начинающих



         

Кодируем помаленьку



Автор: Алексей Федорчук, alv@newmail.ru
Опубликовано: 13.04.2002
Оригинал: http://www.softerra.ru/freeos/17363/

Своеобразие исторической судьбы России проявлялась во всем. В том числе и в том – что русский язык самый многокодировочный язык в мире. Что создает, конечно, некоторые трудности в повседневной жизни. Но зато – какой простор для проявления исконно народной смекалки…

Перечисление ныне существующие (то есть используемые) кодировки кириллических символов – уже требует изрядного напряжения интеллекта, особенно если учесть все синонимы, псевдонимы и эпитеты. Здесь и

  • классическая кодировка DOS, она же – CP866, IBM866, альтернативная (на полноту перечня не претендую); по сию пору она есть стандарт междокументного обмена – так, РФФИ принимает электронные версии проектов только в ней (и в чисто текстовом формате);
  • и не менее традиционная KOI8-R – кодировка электронной почты и, до недавнего времени, Рунета;
  • и ISO8859-5, кодировка Sun, по не вполне понятным причинам сподобившаяся канонизации в качестве кодировки ГОСТ'а;
  • и CP1251, она же – кодировка Windows, не только добившаяся почти безраздельного господства на пользовательских десктопах, но и теснящая KOI8 в ее исконной вотчине – Интернет-серверах;
  • и кодировка MacOS, правда, слава богу, так и не вышедшая за пределы своей платформы.

А еще где-то за кадром остаются «болгарская» кодировка (как легко понять из названия, к Болгарии почти никакого отношения не имеющая), и древняя кодировка того же Mac'а (как помнится, даже не одна), и апокалиптический Unicode…

Легка жизнь пользователей, закосневших в чистом «черном» DOS'е или присягнувших на верность OS/2: как бы то ни было, их CP866 признается всеми – нет, наверное, текстового процессора, не имеющего функции сохранения документа в этом формате. Не сложнее – и мучителям Windows (или мучимым оной): они могут позволить себе просто не знать о существовании иных кодировок, кроме CP1251. Ну а эзотерикам от MacOS – им, подозреваю, ничего, кроме собственной кодировки и не нужно. Не знаю уж, как обходятся Solaris'ты – но и от них сетований как-будто не слышно.

А вот те, кто связал судьбу с открытыми и свободными Unix-подобными системами, обязаны учитывать все изобилие кириллических кодировок. Хотя бы потому, что большинство из них даже не поднимаясь из-за своего десктопа, используют две из них – KOI8 для клавиатурного ввода и CP866 для экранного вывода  .

Впрочем, последняя проблема, сложившись исторически, решена также в историческом масштабе времени: во FreeBSD путем загрузки карт перекодирования (screenmap), в современных отечественных (или исконно интернациональных) дистрибутивах Linux – использованием фрагментарного Unicode  .

Однако пользователи Unix-систем живут не в безвоздушном пространстве – время от времени им требуется читать документы, созданные на иных платформах (пользователи которых, как уже говорилось, подчас даже не подозревают, что кроме их кодировок существуют какие-либо иные). Причем – чем дальше, тем больше: как я уже говорил, даже в исконную Unix-вотчину проникло тлетворное влияние Microsoft  [3].

Первое напрашивающееся решение при этом – использование перекодировщиков. И действительно, таковых создано немало. Самый простой из них – программка iconv. Она являет собой компонент общесистемной библиотеки libc (glibc) и потому гарантированно присутствует в любом дистрибутиве Linux или BSD-клоне. Формат ее предельно прост: iconv -f [исходная_кодировка] -t [целевая кодировка] имя_файла




Содержание  Назад  Вперед