Архивы: по дате | по разделам | по авторам

Снова о кодировках кириллицы

Архив
автор : СЕРГЕЙ ПАШКОВ    23.02.1998

Поскольку на страницы изданий (и "Компьютерры" в том числе) попадают отголоски дебатов о необходимости использования единого набора символов для пересылки почты (в частности, как обоснование принудительной перекодировки почты провайдерами и проч.), то мне хотелось бы рассказать о вещах, которые я нашел в стандартах Интернета. Разумеется, я отдаю себе отчет, что для кого-то они окажутся прописными истинами, но для меня мои находки были довольно неожиданными.

Часто необходимость перекодировки почты в KOI-8R обосновывают так: есть стандарт (RFC1700, он же STD2), и этот стандарт обуславливает применение KOI-8 как единственной стандартной кодировки русского языка. Ну, к стандартам (даже самым неудобным) нам не привыкать. Но если не брать чужие слова на веру, а попытаться разобраться самостоятельно, то возникает ряд вопросов.

Первое. Если посмотрим в описание протокола MIME (хотя он и не является официальным стандартом, а имеет статус DRAFT STANDARD; см. RFC 2045-2049), то увидим, что единственным выделенным набором символов является US-ASCII. Что касается всех остальных, то а) при использовании 8-битных кодировок авторы рекомендуют явно указывать название кодировки; б) авторы ни в коей мере не поддерживают использование какой-либо кодировки в ущерб другим; в) авторы рекомендуют пользоваться кодировками, соответствующим образом зарегистрированными в IANA. Процедура регистрации описана в соответствующих документах и заканчивается присвоением уникального номера.

Второе. Теперь обратимся к RFC1700. Оказывается, что это и есть список зарегистрированных номеров и в нем действительно фигурирует KOI-8R. Но даже в нем эта кодировка не является единственной кодировкой кириллицы, есть еще и ISO8859-5. Интересно другое. Как явно указано в преамбуле этого документа, он является "мгновенным снимком" (snapshot) этого списка на дату составления документа, текущее состояние дел можно выяснить, обратившись на сервер IANA. Отмечаем, что RFC1700 выпущен в конце 1994 года (интересно, много ли народу использует программы трехлетней давности?), и идем на сервер IANA, где в списке зарегистрированных кодировок видим всем нам хорошо знакомые

...

Name: IBM866 [Pond]

MIBenum: 2086

Source: IBM NLDG Volume 2 (SE09-8002-03) August 1994

Alias: cp866

Alias: 866

Alias: csIBM866

...

Name: windows-1251

MIBenum: 2251

Source: Microsoft (see ../character-set-info/windows-1251) [Lazhintseva]

Alias:

...

[Lazhintseva] Katya Lazhintseva, <katyal@MICROSOFT.com>, May 1996.

...

[Pond] Rick Pond <rickpond@vnet.ibm.com> March 1997.

Только тут я понял, что ломлюсь в открытые ворота и что появление кодировки Windows-1251 в MSIE или Netscape Navigator это не просто прихоть авторов, а использование официально зарегистрированных наборов символов.

Таким образом, каких-либо формальных причин использовать единую кодировку почты на русском языке просто нет.

Теперь по поводу принудительной перекодировки почты провайдерами. Иногда от этого бывает видимая польза, но в целом эта процедура ненужная и опасная. Причины просты: а) для провайдера это чисто формальная процедура, в то время как отправитель или получатель могут использовать какие-то априорные знания об абоненте (ОС, используемая почтовая программа и проч.), и эти знания могут помочь провести перекодировку правильно; б) получатель всегда имеет возможность повторять процедуру перекодировки до получения приемлемых результатов, если процедура по умолчанию сработала неверно. Если же при перекодировке ошибся провайдер, то почта может быть потеряна безвозвратно.

И последнее. Мне кажется, что сейчас происходит раздвоение понятия "перекодировка почты в KOI-8". Кто-то под этим понимает реальную перекодировку, а кто-то - отсутствие перекодировки вообще. Типичный пример - моя переписка с Георгием Кузнецовым. Я принимал почту программой TheBat! С. Тануркова (кстати, хороша!). Как сказано в описании, программа поддерживает кодировки US-ASCII, ISO 8859-1 и KOI-8R, остальные - путем перекодировки. И осталось полное недоумение: как же так - почта отсылается и принимается в кодировке Windows-1251, перекодировки по пути никакой нет, все показывается правильно, а почтовая программа называет все это "поддержкой кодировки KOI-8". Причина проста: это никакая не KOI-8, это просто отсутствие перекодировки.

 

Здравствуйте г-н Кузнецов.

Полностью поддерживаю Вас в борьбе с провайдерами.

Вот Вам еще один аргумент. Мне приходят письма из Германии на немецком с испорченными умляутами. На мой запрос провайдеру я получил ответ: "пусть пишут в KOI-8" (???!!!).

Можете цитировать

С уважением,

Игорь Макаров

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.