Cyrillic E-mail FAQ

Cyrillic E-mail FAQ



Предисловие

Несколько лет назад я написал небольшое руководство для начинающих пользователей под названием 'How to read Cyrillic texts on the Internet and send by email: some hints and explanations' ('Как читать кириллицу на Интернете и пересылать по электронной почте: некоторые советы и пояснения'). Русская и английская версии этого документа несколько раз обновлялись независимо друг от друга (так что они немного разошлись по содержанию), но последний раз это происходило уже довольно давно. Некоторые темы сейчас представляют скорее исторический, чем практический интерес -- например, мало кто в наше время станет 'прикручивать' шрифты типа KOI-8 к старым версиям браузера Netscape или KOI8-plugin к старым версиям почтовой программы Eudora. Поэтому я решил оставить старый документ в покое, а вместо обновления написать новый текст в виде FAQ (Frequently Asked Questions -- ответы на часто задаваемые вопросы. На русский переводится как ЧаВО -- частые вопросы и ответы. Или катехизис -- кому как больше нравится :-)). Хотя некоторые вопросы (например, о русификации Windows) и не относятся прямо к теме электронной почты, я решил пока что оставить краткое название 'Cyrillic E-mail FAQ' -- до тех пор, пока содержание не уйдёт от него слишком далеко.

Григорий Наумовец

Последнее обновление: 29.05.2008.

Send me a message using an online feedback form


Когда я отправляю письмо из Outlook Express, выскакивает окошечко с каким-то предупреждением про символы и кодировки. Почему это происходит, и что при этом нужно делать?

Такое предупреждение выводится, если в отправляемом тексте есть символы, которых нет в той кодировке, в которой будет отправлено данное сообщение -- например, сообщение написано по-русски, а кодировка проставлена западноевропейская. (Если вы не знаете, что такое вообще 'кодировка', смотрите сюда).

Если проигнорировать предупреждение о конфликте между кодировкой и содержанием сообщения и нажать на кнопку 'Send As Is', то те символы, которые не вписываются в установленную кодировку, будут заменены вопросительными знаками -- после чего прочесть их будет уже невозможно.

Если нажать на кнопку 'Send As Unicode', то сообщение будет отправлено в универсальной кодировке Unicode. Эта кодировка разрешает использовать практически любые символы, но не все почтовые программы её правильно понимают. Если почтовая программа адресата не поддерживает чтение писем в кодировке Unicode, то он не сможет прочесть текст без специальной программы-перекодировщика.

Самое разумное поведение в этой ситуации -- нажать на кнопку 'Cancel' (отмена), разобраться, почему возник конфликт между кодировкой текста и его содержанием, и устранить его (т.е. включить правильную кодировку либо убрать из текста не предусмотренные этой кодировкой символы). Вернитесь в окно редактирования сообщения, войдите в меню Format - Encoding и проверьте, чтобы для данного сообщения была установлена правильная кодировка. Типичная причина -- если вы отвечаете по-русски на чужое письмо, в котором не было русского текста, или переправляете (forward'ите) такое письмо на другой адрес со своей припиской, то по умолчанию Outlook Express сохранит кодировку исходного сообщения (например, Western European), в которой никаких кодов для букв кириллицы просто нет. Нужно изменить кодировку на какую-нибудь кириллическую (KOI8 или Windows). Другой типичный случай -- если сообщение отправляется в кодировке KOI8-R, а в тексте есть какие-то символы, которых в этой кодировке нет (например, символ номера, параграфа, украинские или белорусские буквы). Нужно либо выбрать такую кодировку, в которой эти символы есть (например, украинские буквы есть в кодировке KOI8-U, а в кодировке Windows есть и украинские буквы, и белорусские, и символ номера), либо избавиться от 'проблемных' символов (скажем, символ номера можно заменить на 'No.').

К началу списка вопросов


Ой, а что такое вообще эти 'кодировки' и зачем 'кодировать' письмо? Разве нельзя отослать его как нибудь так... по-простому, без всяких кодировок?

'Просто взять и отослать' никак нельзя -- разве что обычной почтой. Информация хранится в компьютере не в виде букв, иероглифов и прочих символов, а в цифровом виде -- как последовательность нулей и единиц, записанных в каждую ячейку памяти. Чтобы переслать какой-нибудь текст от одного компьютера к другому, нужно сначала преобразовать буквы в цифры, а потом обратно в буквы, которые будут выведены на экран или распечатаны. Для этого нужно иметь таблицу цифровых кодов, соответствующих каждой букве. Такие кодовые таблицы называют еще кодовыми страницами (code page) или кодировками (encoding). Для кодирования букв латинского алфавита, цифр(*), знаков препинания и других основных символов придумали кодировку под названием ASCII (American Standard Code for Information Interchange), которая использует цифровые коды от 0 до 127. Эта кодовая таблица хоть и называется 'американской', но ASCII и в Африке ASCII -- иначе говоря, кодировка ASCII стала общепринятой во всем мире. Поэтому ни у кого не должно возникнуть сомнений в том, каким именно буквам соответствуют цифровые коды в полученном письме. Это хорошая новость. Плохих новостей две. Во-первых, в общепринятой кодовой таблице ASCII места для русских букв нет. Во-вторых, для кодирования букв кириллицы вместо единой кодовой таблицы, которая дополняла бы ASCII, придумали много разных кодировок, известных под именами KOI8-R, Windows-1251, CP-866 (DOS), Mac, ISO-8859-5 и т.д. Все эти кодировки используют диапазон цифровых кодов от 128 до 255, но буквы кириллицы расставлены в разном порядке (кому интересно, см. сюда) -- так что если в полученном письме стоит некий цифровой код, нельзя сразу сказать, какой букве он соответствует, если не знать, какая именно кодировка использована. Может, это 'Б', может, это 'в', а может, письмо вообще написано не по-русски, а по-немецки или по-польски, и имеется в виду какая-нибудь латинская буква с умляутом сверху или хвостиком снизу. (Кроме русских, есть и много других кодировок, которые используют диапазон кодов от 128 до 255 -- 'греческая', 'центральноевропейская', 'турецкая', 'балтийская' и т.п. Все такие кодировки называют '8-битными', в отличие от '7-битной' кодировки ASCII). Чтобы пресечь на корню путаницу с разными кодировками, и чтобы в одном тексте можно было использовать буквы из разных алфавитов, напрашивается идея единой кодовой таблицы, в которой найдётся место для всех символов -- и для кириллицы, и для греческих букв, и для грузинских, и т.д и т.п. Такая кодировка называется UNICODE -- но пока что ещё не все почтовые программы правильно её понимают. (Подробнее см. здесь).


(*)С первого взгляда может показаться странным, что в тексте нужно кодировать не только буквы, но и цифры, которые и без того уже цифры. Но если немного поразмыслить над тем, что когда мы хотим написать 'ничего', мы пишем целых шесть букв: 'н', 'и', 'ч', 'е', 'г' и 'о', вместо того чтобы не писать ничего, уже не кажется столь удивительным тот факт, что цифра '0' в ASCII передается кодом, равным не нулю, а 48 (в двоичном виде -- 0110000).

К началу списка вопросов


Мне пришло письмо, в котором вместо букв вопросительные знаки. Почему так получилось, и что мне делать, чтобы всё-таки прочесть текст письма?

Скорее всего, это произошло потому, что при отправке письма неправильно была выбрана кодировка, и почтовая программа отправителя заменила вопросительными знаками те символы, которых нет в кодовой таблице. Нужно посмотреть 'исходник' письма (Message source). (В Outlook Express для этого нужно зайти в Свойства (Properties) сообщения). Если в полученном письме есть только эти вопросительные знаки, без HTML-кодированной части, восстановить оригинальный текст невозможно -- нужно писать отправителю и просить его переслать текст еще раз в правильной кодировке. (Не исключено, что сделать этого он не сможет, потому что в той копии письма, которая сохранилась у него в папке отправленных писем, буквы тоже заменены вопросительными знаками).

Мораль: если почтовая программа выдает предупреждение о конфликте между содержанием сообщения и выбранной кодировкой, нужно разобраться, в чем дело, а не кликать мышкой куда попало.

К началу списка вопросов


Почему в украинском или белорусском тексте после пересылки по электронной почте некоторые буквы искажаются или заменяются вопросительными знаками?

Это происходит при неправильном выборе кодировки. В кодовой таблице KOI8-R нет ни украинских, ни белорусских букв, и поэтому при пересылке украинских и белорусских текстов в кодировке KOI8-R некоторые буквы будут искажены или выпадут. Нужно выбирать кодировку, в которой украинские и белорусские буквы есть -- KOI8-U(*), Windows-1251 или Unicode.


(*) Согласно RFC-2319, в кодовой таблице KOI8-U нет белорусской буквы 'у краткое'. Но в той кодовой таблице, которая под именем 'KOI8-U' поддерживается браузером Internet Explorer и почтовой программой Outlook Express, эта буква есть.

К началу списка вопросов


Какую почтовую программу лучше выбрать, чтобы переписываться на русском языке?

Лучше выбрать такую программу, в которой есть функция перекодировки между основными кодировками кириллицы (KOI8-R, Windows-1251, KOI8-U, CP-866 (DOS) и т.п.) и которая понимает универсальную кодировку Unicode. Из современных почтовых программ под Windows это Outlook Express, Microsoft Outlook, The Bat!, Mozilla Thunderbird и Netscape v.6-7.

К началу списка вопросов


Какую программу-newsreader лучше выбрать, чтобы писать на русском языке в телеконференции USENET и ФИДО?

Под Windows я бы порекомендовал для этой цели Fidolook. Это 'приставка' к Outlook Express, которая добавляет много удобств и полезностей.

К началу списка вопросов


Что нужно настроить в Outlook Express, чтобы переписываться по-русски?

screenshot: set OE to send plain text by default

С настройками по умолчанию Outlook Express отсылает письма в HTML-форматированном виде и с преобразованием 8-битного текста в формат Quoted-Printable. Чтобы не увеличивать без нужды энтропию окружающей среды (см. сюда), рекомендуется изменить настройку так, чтобы письма по умолчанию отправлялись в чисто текстовом формате (plain text). Для этого в меню Tools -> Options -> Send нужно изменить формат отправляемых почтовых сообщений (Mail Sending Format) с HTML на Plain Text (см. рис.). Теперь новые сообщения по умолчанию будут создаваться в формате Plain Text. Если нужно будет сделать какое-то сообщение HTML-форматированным, нужно в окне редактирования собщения войти в меню Format и переключиться с формата Plain Text на формат Rich Text (HTML).
Если теперь снять птичку с опции Reply to messages using the format in which they were sent, то ответ на чужое сообщение будет даваться в формате Plain Text даже в том случае, когда исходное сообщение было HTML-форматированным.
Нажав на кнопку Plain Text Settings в разделе Mail Sending Format, убедитесь в том, что для почтовых сообщений установлен формат MIME и что 8-битный текст не будет преобразован ни в Quoted-Printable, ни в Base64 (т.е. должна быть установлена опция Encode text using: None).
Нажав на кнопку International Settings, можно задать кодировку по умолчанию для новых сообщений (обычно это KOI8-R). Имейте в виду, что кодировка KOI8-R не подходит для того, чтобы писать по-украински или по-белорусски (в этом случае лучше установить кодировкой по умолчанию, например, KOI8-U или Windows-1251).

К началу списка вопросов


Я пишу письма в формате Rich Text (HTML-formatted). Мне нравится, что я могу раскрашивать текст разными цветами, украшать его всякими узорчиками и цветочками. Что в этом плохого?

Плохого в этом то, что когда мы пишем в Outlook Express в формате Rich Text письмо, состоящее, например, всего из двух слов: 'Привет, Вася!', фактически при этом в теле сообщения пересылается примерно вот что:

This is a multi-part message in MIME format.

------=_NextPart_000_009B_01C30228.9D49E940
Content-Type: text/plain;
charset='koi8-r'
Content-Transfer-Encoding: quoted-printable

=F0=D2=C9=D7=C5=D4,=F7=C1=D3=D1!

------=_NextPart_000_009B_01C30228.9D49E940
Content-Type: text/html;
charset='koi8-r'
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D'text/html; charset=3Dkoi8-r'>
<META content=3D'MSHTML 6.00.2716.2200' name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2><FONT size=3D1>
<P>=F0=D2=C9=D7=C5=D4, =
=F7=C1=D3=D1!</P></FONT></FONT></DIV></BODY></HTML>

------=_NextPart_000_009B_01C30228.9D49E940--

Если это письмо украсить разными шрифтами, раскрасить буквы и подложить под него какой-нибудь интересный фон с цветочками, объём того, что пересылается в теле сообщения, увеличится ещё в несколько раз.
А если то же самое письмо отправить в формате Plain text, то в теле сообщения пересылается вот что:
Привет, Вася!
Почувствуйте разницу.
Пересылка таких писем в HTML-форматированном виде
  • впустую забивает линию связи и место в почтовом ящике.
  • если почтовая программа адресата не понимает HTML-форматированные письма, у него на экране письмо будет украшено не узорами и цветочками, а кучей всякого мусора, под которым будет погребён собственно текст.
  • HTML-форматированные письма менее безопасны с вирусной точки зрения, чем письма в формате Plain text: в них можно встроить разные скрипты, которые могут быть опасны сами по себе либо, используя дыры в системе безопасности Internet Explorer'а, могут автоматически запускать приложенные файлы.
  • бóльшая часть назойливых рекламных рассылок (спама) приходит именно в HTML-форматированных письмах. У некоторых получателей, измученных спамом, стоят специальные фильтры, которые заодно со спамом могут прибить и ваше письмо. Кроме того, есть люди, которые принципиально не читают писем, пришедших в формате HTML, полагая, что те, кто рассылают такие письма, ничего умного написать не в состоянии.

Мораль: Шлите письма в HTML-форматированном виде только тогда, когда это действительно нужно.

К началу списка вопросов


Я пишу письма в Ворде и потом прилагаю их к сообщению. Что в этом плохого?

Например, вот что:

  • Размер письма. Даже если в тексте письма всего несколько слов, файл в формате Microsoft Word 97 займет как минимум 19 килобайт (а сообщение, к которому приложен такой файл, минимум 27 килобайт, поскольку файлы, прилагаемые к письму, преобразовываются в специальный формат (обычно по алгоритмам base64 или uuencode), что увеличивает размер файла примерно на 40%). Пересылка обычного текста в виде вордовских документов впустую забивает и почтовые ящики, и линии связи.
  • Опасность передачи вирусов. Чисто текстовое (plain-text) сообщение без приложенных файлов никаких вирусов передать не может(*). В вордовских файлах могут содержаться макро-вирусы, в том числе и довольно опасные. Поэтому не стоит открывать полученные по почте вордовские файлы, не проверив их перед этим недавно обновленной антивирусной программой.
  • Проблема совместимости форматов. Документы в формате Microsoft Word 97 не читаются в более ранних версиях Ворда, а документы в формате Word 6.0 или 95 могут вызвать у более поздних версий Ворда некоторые проблемы со шрифтами.
  • Вордовский формат не является общепринятым форматом распространения документов. Не стоит думать, что Microsoft Word есть не только у вас, но и у всех.
  • При ответе на письмо почтовая программа может автоматически цитировать 'тело' полученного письма, но не содержимое полученных файлов. Для многих корреспондентов это очень неудобно.
  • Если заглянуть в 'потроха' вордовского файла, иногда там можно обнаружить много разной информации помимо того текста, что должен остаться в окончательной версии документа (особенно если в настройках Ворда не отключена опция 'быстрого сохранения' Fast Save). Например, это могут быть куски старых документов, предыдущих версий или какая-то другая информация, которая не предназначена для получателя данного письма.

Мораль: Не пишите письма в Ворде, если вы вполне можете обойтись простым текстом в теле сообщения.


(*)Если, конечно, не считать вирусами 'письма щастья' и другие chain letters, которые за счет воздействия полученного текста на неустойчивую психику реципиента могут распространяться гораздо эффективнее многих 'почтовых червей'.

К началу списка вопросов


Мне пришло письмо, к которому приложен какой-то странный файл под названием WINMAIL.DAT. Я не знаю, что с ним делать. Может, это вирус?

Это не вирус, это результат отправки RTF-форматированных писем из Microsoft Outlook или через Microsoft Exchange Server. Outlook зачем-то отправляет такие письма не в общепринятом стандарте MIME, а в так называемом формате TNEF (Transport Neutral Encapsulation Format), который многие другие почтовые программы не понимают и не могут автоматически декодировать. Поэтому, если вы пользуетесь Outlook'ом сами и у ваших корреспондентов возникают проблемы с приложенным файлом WINMAIL.DAT, при отправке письма выбирайте для него текстовый или HTML формат, а не RTF. Если же вы получили такой файл сами, то извлечь из него полезную информацию можно при помощи специальных программ декодирования -- например, WMDecode, Winmail Opener, Winmail.dat Reader, tnef2win или Fentun. Проблемы с файлом WINMAIL.DAT -- ещё один довод для того, чтобы по умолчанию отправлять письма в формате Plain Text, а RTF- или HTML-форматирование включать только тогда, когда это действительно важно и нужно.

UPDATE: Многие искали Fentun, а его на старом месте не было... Ладно, на всякий случай - копия здесь.

К началу списка вопросов


Мне пришёл приложенный к письму файл с очень странным названием, которое я не могу прочесть. Какому идиоту пришла в голову мысль его так назвать? Может, это какой-то вирус?

Скорее всего, причина в том, что этот файл 'русским именем когда-то нарекли'. Если операционная система достаточно русифицирована, русские буквы могут вполне нормально 'жить' в именах файлов, но при переезде на новое недостаточно русифицированное место жительства или при прохождении через разные почтовые системы с такими файлами могут происходить разные неприятные вещи -- от исковерканного имени вплоть до летального исхода. Например, при пересылке по электронной почте с русскими именами файлов может происходить вот что:

нАПЮГЕЖ нАГНПЮ ЯРЮМДЮПР.doc

Искажение кодировки русских букв

_____________.doc

Выпадение русских букв (замена символами подчеркивания или вопросительными знаками)

=?koi8-r?B?8sHT08vB2iDPINPFwsU=?=

Преобразование в специальную кодировку (с возможным 'отпадением' расширения, так что становится непонятно, какой программой этот файл нужно открывать)

При копировании файлов с русскими именами на другой компьютер с некириллической системной кодовой страницей возможна такая ситуация:

  • Имена скопированных файлов изображаются 'крокозябликами'

  • Чтобы русские имена файлов были нормально видны, на компьютере меняют системную кодовую страницу (узнать о том, как это сделать, можно здесь).

  • После этого со вновь создаваемыми и вновь копируемыми файлами проблем нет, но русские имена тех файлов, которые были скопированы еще до изменения кодовой страницы, исковеркались до такой степени, что Windows не может ни открыть эти файлы, ни даже удалить. Теперь для того, чтобы переименовать или удалить эти файлы, придётся либо выходить в DOS, либо 'откатывать' системную кодовую страницу назад.

Мораль #1: Если вы хотите, чтобы с файлом не было проблем не только на вашем компьютере, но и на чужом, не используйте в имени файла русские буквы, а тем паче украинские. Латиница всегда остаётся латиницей, а кириллица при неблагоприятных раскладах может подвергаться полной декириллизации. Поэтому, если вам пришла в голову мысль настолько тонкая и глубокая, что вы не можете её выразить в рамках ASCII, выразите её в тексте документа, а не в названии файла. Если же в имя файла по печальному стечению обстоятельств уже вкрались буквы кириллицы, а вы хотите переслать его по электронной почте -- либо переименуйте файл, либо запакуйте его в архив с именем, в котором никакой кириллицы не будет.

Мораль #2: Если вы переносите файлы с русскими именами на другой компьютер, проверьте сначала, всё ли там в порядке с системной кодовой страницей и нормально ли там видны русские имена файлов. На всякий случай не помешает запаковать файлы в архив(ы), в именах которых нет никакой кириллицы.

К началу списка вопросов


Что такое 'Quoted-Printable'? Что означают такие символы, как '=F0=D2=C9=D7=C5=D4' и тому подобное?

Не все почтовые серверы и программы могут нормально пропускать и обрабатывать 8-битные тексты (например, некоторые системы просто 'обрезают' (обнуляют) восьмой бит передаваемых кодов). Поэтому были придуманы разные способы преобразования 8-битных текстов в 7-битную форму, которая обязана нормально обрабатываться всеми почтовыми системами, и обратно. Один из таких способов называется 'Quoted-Printable'. При этом коды латинских букв, цифр и других символов ASCII (с некоторыми исключениями), передаются без изменения, а 8-битные коды заменяются последовательностью из знака равенства и пары букв или цифр, соответствующих шестнадцатиричному коду данного символа. Например, '=F0' обозначает символ с шестнадцатиричным кодом 'F0' (в десятичной системе -- 240). Чтобы знать, какой символ имеется в виду, нужно знать исходную 8-битную кодировку (например, в кодовой таблице KOI8-R этот код соответствует букве 'П'). Обычно почтовые программы при правильно сформированных служебных строках сообщения ('Content-Transfer-Encoding: quoted-printable' и т.п., как описано в RFC 2045) автоматически преобразуют quoted-printable в полученных письмах обратно в 8-битную форму. Если по какой-то причине quoted-printable в полученном письме не было автоматически декодировано, это можно сделать с помощью какой-нибудь программы-перекодировщика -- например, TCODE или Russian Anywhere.

К началу списка вопросов


Я отправляю из Outlook Express письма в формате Rich Text (HTML-форматированные). Как отключить преобразование текста в Quoted-Printable и сделать так, чтобы текст пересылался в 8-битной форме?

При настройках по умолчанию, в Outlook Express установлен формат отправляемых сообщений Rich Text (HTML). При этом фактически отправляемые сообщения состоят из двух частей: чисто текстовой и HTML-форматированной. Если в меню Tools -> Options -> Send в настройках 'Mail Sending Format: HTML Settings' установлена опция 'Encode text using: Quoted-Printable', 8-битный текст в обеих частях сообщения будет преобразован в Quoted-Printable. При этом письмо сильно разбухает -- и за счёт HTML-тагов, и за счёт преобразования 8-битных символов в формат Quoted-Printable, и за счёт дублирования одного и того же текста в чисто текстовой и HTML-форматированной частях. Если изменить опцию 'Mail Sending Format: HTML Settings' на 'Encode text using: None', логично ожидать, что никакого Quoted-Printable в сообщении не будет. Но, вопреки этим ожиданиям, оказывается, что в 8-битном виде останется только чисто текстовая часть, а HTML-форматированная всё равно преобразуется в Quoted-Printable!!! Трудно сказать, bug это или feature, но в любом случае это ещё один довод за то, чтобы по умолчанию отправлять письма в формате Plain Text, а Rich Text (HTML) использовать только тогда, когда это действительно нужно.

Легко проделать такой опыт: вставить в тело сообщения какой-нибудь текст на русском языке и посмотреть, каким будет объём этого сообщения в разных форматах. Я взял текст длиной около 10 килобайт, и вот что у меня получилось:

  • При тех настройках, которые установлены в Outlook Express по умолчанию (Mail Sending Format: HTML, HTML Settings -- Encode text using: Quoted-Printable), размер сообщения -- 59 KB;
  • Если изменить опцию 'Mail Sending Format: HTML Settings' на 'Encode text using: None', размер сообщения уменьшается до 42 KB;
  • Если отправить сообщение в формате Plain Text, сообщение занимает всего 11 KB.

Что же делать, если нужно, чтобы тело сообщения было именно в формате Rich Text (HTML), но чтобы при этом там не было никакого Quoted-Printable? Вероятно, нужно взять вместо Outlook Express какую-нибудь другую почтовую программу. Например, почтовую программу, включённую в Netscape 7.*, вполне можно настроить так, как пользователю надо.

К началу списка вопросов


Что такое UNICODE? Почему с помощью юникодовских шрифтов я не могу напечатать любые символы, которые есть в кодировке UNICODE? Почему, например, у меня не получается печатать по-грузински или по-армянски?

UNICODE -- это схема кодирования, по которой всем символам из всех алфавитов должно найтись место в единой кодовой таблице. При этом не должно быть такой ситуации, что нужно гадать, чему именно соответствует, например, код '240' в полученном письме -- букве 'П', если использовалась кодировка KOI8-R, букве 'р', если использовалась кодировка Windows-1251, а может, и вообще какой-нибудь греческой или польской букве, если использовалась 'иностранная' кодировка. Код в юникодовской таблице должен совершенно однозначно определять кодируемый символ -- при этом можно будет устранить всякую путаницу с кодировками, и использовать в одном тексте буквы и символы из самых разных алфавитов. Понятно, что единая кодовая таблица должна быть достаточно большой -- поэтому в ней для кодов отводится не 8 двоичных разрядов, а 16 (что позволяет закодировать всего 216=65536 символов). Раз Unicode -- не 8-битная, а 16-битная кодировка, то и текстовый файл, записанный в кодировке Unicode, будет вдвое больше по объёму.

Именно кодировка UNICODE используется для кодирования текста внутри документов Microsoft Office, начиная с Microsoft Office 97 (в более ранних версиях текст кодировался в 8-битном виде -- и с этим связаны некоторые проблемы совместимости шрифтов между документами, созданными в разных версиях Microsoft Office). Начиная с Windows 95, шрифты Windows используют нумерацию символов, основанную на UNICODE -- но это не значит, что с помощью стандартных шрифтов, автоматически устанавливаемых при установке Windows (Times New Roman, Arial и т.п.), можно напечатать любые буквы и символы, которые есть в кодовой таблице UNICODE. Фактически, в такие шрифты включены начертания лишь малой части того, что есть в UNICODE. Шрифт, включающий всю кодовую таблицу UNICODE, будет очень большим по объёму и может заметно 'притормаживать' Windows. Например, в шрифт Arial Unicode MS v.0.86 включены 51180 символов (в том числе грузинский, армянский и многие другие алфавиты), и занимает он примерно 23 мегабайта. Если этот шрифт не установился у вас вместе с Microsoft Office 2000/2002, Microsoft FrontPage и т.п., его можно скачать отсюда.

Для кодирования символов кириллицы в UNICODE используется диапазон кодов U+0400 – U+04FF (1024–1279) -- см. http://www.unicode.org/charts/PDF/U0400.pdf (в формате PDF) или, например, http://www.hclrss.demon.co.uk/demos/wgl4.html#w0400.

К началу списка вопросов


Что это за цифры -- ''&#1086;&#1089;&#1085;&#1086;&#1074' и тому подобное? Откуда они берутся и как их расшифровать?

Это ссылки на десятичные цифровые коды символов (numeric character references) в таблице Unicode (иногда их еще называют escape-последовательностями HTML). Такие цифровые коды используются в языке HTML для обозначения символов, которых нет в кодировке, используемой для данного документа. Если сохранять HTML-документ из браузера или HTML-редактора и неправильно выбрать кодировку, то весь основной текст документа будет записан в виде цифровых кодов. (Например, такое часто бывает, когда, создавая новый документ в редакторах типа FrontPage или Netscape Composer, не проверяют его кодировку). При этом размер файла увеличивается в несколько раз. Такие коды могут появиться и в письме, создаваемом в формате HTML, для передачи тех символов, которых нет в установленной для данного письма кодовой таблице. Если вы видите в тексте письма такие цифровые коды вместо тех символов, которые они должны обозначать, это означает либо то, что ваша почтовая программа не понимает цифровые коды символов в HTML-письмах, либо то, что служебные строки полученного письма неправильно описывают его содержание (такое чаще всего бывает, если письмо пришло не напрямую от отправителя, а переправлено получателем, чья почтовая программа или Web-mail некорректно работают с письмами в формате HTML).

Так или иначе, если цифровые коды символов в полученном письме почему-то оказались нерасшифрованными, их можно расшифровать специальными программами-перекодировщиками (например, TCODE или Russian Anywhere). Если таких программ нет под рукой, можно открыть Notepad или любой другой текстовый редактор, вставить туда скопированный из письма кусок текста с нерасшифрованными кодами и написать перед ним ''<HTML>', а после него -- '</HTML>', так чтобы в результате получилось примерно такое:

<HTML>
&#1086;&#1089;&#1085;&#1086;&#1074
</HTML>

Сохраните это в файл с расширением '.html', а потом откройте его каким-нибудь браузером.
(Если вы записываете файл из Microsoft Word, сохранить его нужно в чисто текстовом виде, а не в формате вордовского документа).

К началу списка вопросов


У меня проблемы при работе с Google Mail (Gmail). Мне приходят письма с абракадаброй, а я не могу их прочесть. Пытаюсь переключить в браузере кодировку, а она не переключается. Что мне делать?

Google Mail (Gmail) ориентирована на работу в кодировке Unicode. Письма, которые отсылаются через веб-интерфейс, уходят в кодировке Unicode (UTF-8) (так что у получателей, чья почтовая система не понимает Unicode, могут быть проблемы с чтением), и получаемые письма браузер тоже показывает в UTF-8. Если реальная кодировка письма другая (например, koi8-r или windows-1251), оно может оказаться нечитабельным. Если Gmail не даёт переключить кодировку браузера, попробуйте войти в режим просмотра исходного текста сообщения (More options -- Show original).
Кроме того, не забывайте, что Gmail'ом можно пользоваться и через почтовую программу по протоколам POP3/SMTP. В этом случае кодировкой входящих и исходящих писем управляет почтовая программа.

К началу списка вопросов


У меня установлена англоязычная версия Windows. Будут ли у меня проблемы с русским языком, и как мне её правильно русифицировать?

Это зависит от версии Windows и от того, насколько 'глубоко' её нужно русифицировать. Для того, чтобы читать и писать по-русски, нужно только, чтобы в Windows была включена поддержка кириллицы и установлена русская раскладка клавиатуры, но для того, чтобы нормально работать с русскими именами файлов и с программами, где меню на русском языке выводится системными шрифтами, Windows нужно русифицировать на уровне системной кодовой страницы. Для Windows NT, 2000, XP системную кодовую страницу легко переключить в любой момент, а для Windows 95, 98, ME её нужно правильно выбрать в момент установки системы (потом это сделать значительно сложнее). Подробно об этом можно прочесть у Павла Городянского. Если нет времени, желания или возможности переустанавливать Windows 95, 98, ME заново или подменять системные файлы вручную, можно поставить программу под названием Parawin, которая позволяет управлять системной кодовой страницей и редактировать раскладки клавиатуры по своему вкусу.

ВНИМАНИЕ! Изменение системной кодовой страницы Windows 95, 98, ME ('вручную' или с помощью таких программ, как Parawin) может печально отразиться на судьбе файлов с русскими или любыми другими non-ASCII именами (см. сюда). Такие файлы лучше заранее убрать куда-нибудь в архив, в имени которого будут только символы ASCII.
Например, в имя файла-ярлычка, указывающего на флоппи-дисковод (3.5' Floppy (A:)), входят non-ASCII символы, и после установки программы Parawin и переключения системной кодовой страницы Windows 95, 98, ME с английской на русскую система больше не может обратиться к этому файлу -- так что при попытке скопировать что-нибудь на дискету через меню 'Send To' ничего не происходит. Чтобы восстановить эту функцию, в папке 'Send To' придётся заново создать ярлычок, указывающий на флоппи-дисковод (а чтобы удалить из этой папки старый ярлычок с порченым именем, придётся выйти в DOS).

К началу списка вопросов


Я пытаюсь скопировать русский текст из одной программы в другую, но вставляются то вопросительные знаки, то какие-то непонятные крокозяблики. Почему так происходит, и что делать?

Это происходит потому, что внутри одних программ для записи текста используется 16-битная кодировка Unicode, а в других -- различные 8-битные кодировки, так что не-юникодовские программы могут не понимать 'большие' коды Unicode, а юникодовские -- не знать, в какой именно 8-битной кодировке записан вставляемый текст. Чтобы всё-таки перенести текст из одной программы в другую, есть два основных трюка:

  1. Активная раскладка клавиатуры в момент переноса должна соответствовать языку копируемого текста;

  2. Если это не помогает, попробуйте перенести текст при 'посредничестве' какой-нибудь третьей программы, которая играет роль промежуточного пункта копирования.

Подробно об этом можно прочесть у Павла Городянского.

К началу списка вопросов


У меня стоит английская версия Microsoft Office. Как сделать так, чтобы в ней работала проверка русской и украинской орфографии?

В английскую версию Microsoft Office не включены файлы, нужные для того, чтобы работала проверка русской и украинской орфографии и автоматическая расстановка переносов в русском тексте. Если скопировать эти файлы с компьютера, на котором стоит русская версия Microsoft Office, в директорию 'Program FilesCommon FilesMicrosoft SharedProof' и прописать их в системном реестре, то проверка русской и украинской орфографии должна работать.
Скопировать нужно такие файлы:

MSGR_RU.LEX, MSHY3UA.DLL, MSHY3UA.LEX, MSHYRU32.DLL, MSHY_RU.LEX, MSPRU32.DLL, MSSP3UA.DLL, MSSP3UA.LEX, MSSP_RU.LEX, MSTHRU32.DLL, MSTH_RU.LEX, MSGRRU32.DLL, MSGRRU32.HLP

Если их неоткуда скопировать, их можно взять здесь.

К началу списка вопросов


Когда я пытаюсь заполнить в Internet Explorer'е какую-нибудь формочку (например, форму поиска), вместо букв кириллицы выскакивают какие-то странные комбинации из латинских букв и цифр. Как с этим бороться?

Иногда такая проблема возникает из-за неправильной работы какой-нибудь дополнительной панели инструментов, установленной для боаузера -- например,  Google Toolbar и т.п. Попробуйте её снести и переустановить.

К началу списка вопросов


У меня Microsoft Outlook. Мне приходят сообщения в непонятной кодировке, и я не могу их прочесть, потому что не могу найти в меню, как переключать кодировки.

В окне просмотра списка сообщений MS Outlook, в отличие от Outlook Express, действительно нет менюшки, которая переключает кодировки. Для того, чтобы такая менюшка появилась, откройте сообщение в отдельном окне.

К началу списка вопросов


Полезные ссылки

К началу списка вопросов


На главную страницу

Send me a message using an online feedback form

AttachmentSize
fentun.zip115.82 KB