Отличия кодировок dos и windows

Обновлено: 05.07.2024

Спросите профессионального программиста, как устроена система Windows, и вы услышите горестный вздох. В лучшем случае вам еще сообщат, что лучше бы вам этого не знать.

И в самом деле, Windows содержит огромное количество никому не нужных функций; припомните, к примеру, многосотенные списки недокументированных функций да функций-заглушек, не то еще не реализованных, не то забытых вовсе. В частности, сама многооконная среда используется довольно редко, большую часть времени пользователь работает с окном, развернутым на весь экран. Концепция же функции окна, как и вся система событийного управления, неизменно приводит меня в праведную ярость из-за разбазариваемых впустую ресурсов.

Впрочем, пользователю все это неизвестно - от него структура Windows старательно скрывается. Такое укрытие структуры операционной системы осмысленно в компьютерах Macintosh, рассчитанных на самого неподготовленного пользователя-мне хватило десяти минут работы на Маке, чтобы разобраться в работе большинства установленных приложений - в системе же Windows, имеющей обыкновение периодически рушиться под собственным весом, пользователь имеет право знать, что у него лежит в каком каталоге.

Осмелюсь напомнить тем, кто забыл, как выглядит DOS, что для его функционирования достаточно наличия всего трех файлов общим объемом чуть более ста килобайт (я лично после работы с мастдайкой - Windows 95 - стал путать килобайты с мегабайтами), а все необходимые драйвера устанавливаются очевидным образом. Только в DOS чувствуешь себя полновластным хозяином собственного компьютера.

Часто достоинством Windows считается унифицированный графический интерфейс, например, общие шрифты. Но стоило ли огород городить, если оные шрифты с тем же успехом могут использоваться и в DOS, достаточно распространить средства их отображения в виде драйвера для DOS. Что же касается пресловутого OLE, гипотетическая его реализация под DOS наверняка работала бы быстрее и стабильнее; тем же, кто обвинит меня в притягивании за уши, отвечу, что OLE именно за уши Мелкософтом и притянут - так не лучше ли было притянуть его к DOS?

Вывод из сказанного напрашивается сам собой: Microsoft Windows is a treacherous plot against humanity (Мелкософтовская форточка - коварный замысел против человечества).


Первые 128 символов стандартизированы. Они одинаковы абсолютно во всех кодировках по всему миру. Если говорить о символах, то это весь английский алфавит, цифры и основные знаки. Оставшиеся 128 позиций отданы "на откуп" национальным алфавитам и дополнительным символам. В подавляющем большинстве стран именно так все и есть. Однако в России существует не одна и даже не две национальные кодировки. Их ровно пять. Таким образом, если текст написан по-русски в одной кодировке, то в другой он будет выглядеть абсолютно беспорядочным набором разных знаков.


Немного позже началось победное шествие персональных компьютеров. А вместе с ними огромное распространение получила операционная система MS-DOS. Ее разработчик, компания Microsoft, во время русификации не воспользовалась KOI-8, а придумала свою кодировку, получившую название DOS (кодовая страница 866). В этой таблице среди дополнительных символов появились элементы рамок, которые значительно облегчали рисование таблиц в различных текстовых редакторах. Это тоже способствовало распространению кодировки DOS. Кстати, примерно в то же время или немного позже на российский рынок вышли компьютеры Macintosh. Естественно, при русификации установленной на них операционной системы была создана еще одна таблица символов - MAC. Правда, нужно отметить, что она практически никогда не использовалась вследствие малого распространения самих "Макинтошей".


В 1990 году компания Microsoft выпустила новую операционную версию Windows 3.0. В ней поддержка национальных языков была встроена. Но вот что интересно - по каким-то причинам специалисты Microsoft не воспользовались уже существующей русской кодировкой DOS, а снова изобрели новую - Win (кодовая страница 1251). Скорее всего, это было сделано из-за введения в таблицу других дополнительных символов вместо рамок и тому подобных символов. Но достоверно о причинах появления кодировки Win мы, скорее всего, уже не узнаем. Еще позже на проблему наличия нескольких национальных кодировок в России и некоторых других странах обратила внимание международная организация International Organization for Standardization, занимающаяся вопросами стандартизации. И опять же, вместо того чтобы за основу взять наиболее распространенную кодировку (на тот момент это была таблица Win), представители ISO выдумали свою (ISO 8859-5). Но практического применения она не получила. И хотя поддержка кодировки ISO есть во всех браузерах, наверное, не существует ни одного сайта, ее использующего.


Кроме того, уже достаточно долгое время наблюдаются попытки "проталкивания" универсальной кодировки Unicode. Ее создатели предложили использовать на каждый символ не один, а два байта. Это позволяет увеличивать число возможных значений до 65535 и вместить в таблицу все символы существующих алфавитов. Правда, все эти попытки остаются абсолютно бесплодными.

Следовательно выделим несколько общих черт различия кодировок:

1) Всего существует 256 символов.

2) Первые 128 символов стандартизированы, они одинаковы по всему миру, и состоят из английского алфавита, цифр и знаков.

3) Остальные 128 отданы "на откуп" национальным алфавитам и дополнительным символам.

4) В России 5 различных кодировок!

5) Текст, написанный в одной кодировке на русском языке, в другой кодировке будет выглядеть различными беспорядочными знаками, следовательно, каждая кодировка индивидуальна, и не поддерживает тесного "сотрудничества" с другой кодировкой.

6) Каждая кодировка задается своей собственной кодовой таблицей. Одному и тому же двоичному коду в различных кодировках поставлены в соответствие различные символы.

7) Общая черта в основном большинстве кодировки используют на 1 символ ровно 1 байт. Существует кодировка Unicode, где Ее создатели предложили использовать на каждый символ не один, а два байта. Это позволяет увеличивать число возможных значений до 65535 и вместить в таблицу все символы существующих алфавитов. Правда, все эти попытки остаются абсолютно бесплодными.

Различие текстовых файлов, созданных в различных кодировках

Когда текстовый файл закодирован, он сохраняется в соответствии со стандартом кодировки - определенным набором правил, в соответствии с которыми каждому текстовому знаку присваивается числовое значение. Существует множество различных стандартов кодировки, представляющих наборы знаков, используемые в различных языках, причем некоторые из этих стандартов поддерживают только знаки одного языка. Так, для текста на китайском языке может быть использован стандарт кодировки GB2312-80 в случае упрощенного письма и стандарт кодировки Big5 в случае традиционного письма.


Поскольку в Microsoft Word используется стандарт кодировки Юникод (Юникод. Стандарт кодировки знаков, разработанный консорциумом Unicode. Используя для представления каждого знака более одного байта, Юникод позволяет представить в одном наборе знаков почти все языки мира.), то в Microsoft Word можно открывать и сохранять файлы с использованием стандартов кодирования для различных языков. Например, работая с операционной системой, использующей интерфейс на английском языке, в Microsoft Word можно открыть текстовый файл, созданный с использованием стандарта кодировки для греческого или японского языка.

Да-да, не удивляйтесь, как это ни странно, в Word 97 есть средство открывать и сохранять файлы в другой кодировке! Правда, только в кодировке MS-DOS, но именно в ней и представлено большинство книг в «электронных библиотеках». Кроме того, множество документов подготовлено в среде MS-DOS и сохранено в том же формате. Так как же работает это средство?

Microsoft Word 97

Сначала в меню «Сервис?Параметры?Общие» надо включить опцию «Подтверждать преобразование при открытии». Потом при вызове с помощью пункта «Открыть» любых файлов с расширением, отличным от .doc, будет появляться диалоговое окно, где в предложенном списке следует отметить нужный формат.

Когда вы таким образом открываете текст, представленный в кодировке MS-DOS, то лучше выбрать пункт «Текст DOS». Если такой файл отредактировать и сохранить, то его формат не изменится — он останется в кодировке MS-DOS. При работе в Windows-1251 нужно вызвать пункт меню «Файл?Сохранить как. » и, чтобы сохранить в текстовом файле, указать «Только текст».

Существует программа «Конвертор текста MS-DOS», специально предназначенная для обработки и оптимизации текста, набранного в среде MS-DOS. Она представляет собой макрокоманду для Word 97, 2000, которая запускается из редактора. Эта программа не только удаляет лишние символы конца абзаца, но и на основе количества пробелов перед первой буквой в строке устанавливает значение выравнивания (по ширине, по центру, по правому краю), заменяет несколько стоящих подряд пробелов одним («Лексикон» для MS-DOS добавляет лишние пробелы, чтобы выполнить выравнивание текста по ширине), оптимизирует пробелы вокруг знаков препинания. С ее помощью можно быстро обработать и автоматически сохранить большое количество файлов. Программа имеет множество настроек, которые вполне удовлетворят даже очень требовательных пользователей.

WordPad

Если нет Microsoft Office, а также каких-либо других программ для чтения текстов MS-DOS, то можно взять текстовый редактор WordPad, поставляемый вместе с Windows 95. В меню «Открытие файла» в качестве шаблона укажите «Текстовые документы MS-DOS», и тогда открываемый файл отобразится правильно.

TextViewer

Когда нужно напечатать или отредактировать файл, набранный в среде MS-DOS, то иногда бывает удобно обратиться к помощи Word и WordPad. Однако работать с большим количеством таких файлов весьма затруднительно. Сейчас имеется достаточно много бесплатных программ, написанных русскими специалистами, которые успешно справляются с решением проблемы совместимости различных кодировок. Одна из подобных разработок — программа TextViewer, созданная Георгием Гуляевым.

TextViewer открывает текстовые файлы и файлы в формате RTF. Слева сверху на панели инструментов расположены шесть кнопок: пять из них позволяют просмотреть открытый документ в соответствующей кодировке (Dos-866, Windows-1251, KOI-8, Macintosh, ISO-8859-5), а шестая — текстовое содержимое файла в формате RTF. Выбрав соответствующую опцию в окне «Файл?Сохранить как. », можно сохранить открытый файл в нужной кодировке. Перед печатью документ можно просмотреть, найти и заменить какие-либо фрагменты текста. Можно также выбрать шрифт для текста, а с помощью удобного диалогового окна «связать» TextViewer с различными текстовыми файлами других типов.

Aditor

Aditor — мощный текстовый редактор, отличающийся множеством разнообразных функций, в числе которых возможность чтения и записи файлов в различных кодировках.

Чтобы перекодировать файл, нужно в меню Action выбрать пункт Convert. В появившемся диалоговом окне необходимо указать параметры перекодирования и запустить конвертацию. Чрезвычайно важно то, что редактор позволяет работать с текстом, написанным латинскими буквами. Следует отметить, что он имеет многооконный интерфейс, функцию удаления из документа всех HTML-тегов и настраиваемые панели инструментов, а также обеспечивает работу с шаблонами.

Exclude Symbols

Программа Exclude Symbols Александра Вардугина из Кемерова — многофункциональный пакетный обработчик текстовых файлов. Она поддерживает кодировки Windows-1251, KOI-8, DOS-866 и ISO-8859-5, позволяя переводить текстовые файлы из одной в другую. Допустима последовательная обработка до 15 файлов за один раз. Программа имеет несколько весьма интересных функций, например переводит все прописные буквы в строчные и наоборот, удаляет пустые строки из текста, заменяет группы пробелов табуляцией и символы в обрабатываемых файлах.

Кроме того, можно автоматически определять кодировку документа. Делается это по довольно очевидному алгоритму. Например, в русском языке есть союз «и» и предлог «в», но нет ни «Ё» и «?» (символы кодовой страницы Windows-1251, имеющие такие же коды, как «и» и «в» в кодовой странице DOS-866), ни «Й» и «Ч» (символы кодовой страницы Windows-1251, имеющие такие же коды, как «и» и «в» в кодовой странице KOI-8). Поэтому ясно, что текст, открытый с кодировкой Windows-1251, в котором встречаются одиноко стоящие символы «и» и «в», скорее всего, принадлежит кодовой странице Windows-1251. Если же в нем встречаются одиноко стоящие символы «Ё» и «?», то это, скорее всего, текст в кодировке MS-DOS, а если в этом тексте есть одинокие символы «Й» и «Ч», то, наверное, текст написан в кодировке KOI-8. На подобных принципах основан и способ автоматического определения кодировки документа в программе Exclude Symbols. Поэтому, указав в качестве объекта для перекодирования группу файлов, можно не беспокоиться о кодировке каждого из них — достаточно просто указать ту кодировку, которую нужно получить на выходе, а для исходной поставить значение auto. Программа сама определит для каждого обрабатываемого файла его исходную кодовую страницу, решит, нужна ли ему конвертация в другую кодировку, и, если необходимо, выполнит ее.

Утилита «Перекодировка кириллицы»

Программа Виктора Степанова «Перекодировка кириллицы» представляет собой простой перекодировщик текстовых файлов. Имеется большой выбор исходных и конечных кодировок. Можно перекодировать файлы в Translit и Unicode.

«Штирлиц»

Программа отличается широким набором режимов работы и функций. Так, можно подбирать схему перекодировок вручную (если для этого есть какие-нибудь предположения), задавать глубину анализа (чтобы выяснить, сколько раз подряд это письмо могло быть неправильно перекодировано), читать тексты, написанные в Unicode-кодировке и на Translit. Имеется также функция преобразования HTML-файлов в текстовые с сохранением элементов форматирования. А подробное Руководство пользователя и очень удобная функция деинсталляции могут служить примером для разработчиков таких программ.

Программа способна вытаскивать из текста письма фрагменты, закодированные в uuencode, base64 и других подобных системах передачи вложенных файлов, если почтовая программа получателя не распознала их. Для этого в «Штирлице» есть специальная функция. Кроме того, можно выполнять пакетное перекодирование файлов — исходная кодировка каждого из них определяется автоматически и в соответствии с ней выбирается алгоритм перекодирования.

«Декодер почты в неверной кодировке»

Эта программа А.В. Покровского — простое, но очень хорошо работающее средство для раскодирования писем, прошедших через несколько перекодирующих почтовых серверов. Она анализирует текст и преобразует его в читаемый вид. Несмотря на отсутствие сложных настроек и дополнительных возможностей, «Декодер» превосходно выполняет свои функции.

В будущем проблема совместимости различных кодировок, скорее всего, разрешится. Может быть, лучший вариант — принятие всеми одной какой-либо кодировки в качестве стандарта, но тут уж все зависит от производителей ПО.

Как правило, при совместной работе с текстовыми файлами нет необходимости вникать в технические аспекты хранения текста. Однако если необходимо поделиться файлом с человеком, который работает с текстами на других языках, скачать текстовый файл из Интернета или открыть его на компьютере с другой операционной системой, может потребоваться задать кодировку при его открытии или сохранении.

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

В этой статье

Общие сведения о кодировке текста

То, что отображается на экране как текст, фактически хранится в текстовом файле в виде числового значения. Компьютер преобразует числические значения в видимые символы. Для этого используется кодикон.

Кодировка — это схема нумерации, согласно которой каждому текстовому символу в наборе соответствует определенное числовое значение. Кодировка может содержать буквы, цифры и другие символы. В различных языках часто используются разные наборы символов, поэтому многие из существующих кодировок предназначены для отображения наборов символов соответствующих языков.

Различные кодировки для разных алфавитов

Сведения о кодировке, сохраняемые с текстовым файлом, используются компьютером для вывода текста на экран. Например, в кодировке "Кириллица (Windows)" знаку "Й" соответствует числовое значение 201. Когда вы открываете файл, содержащий этот знак, на компьютере, на котором используется кодировка "Кириллица (Windows)", компьютер считывает число 201 и выводит на экран знак "Й".

Однако если тот же файл открыть на компьютере, на котором по умолчанию используется другая кодировка, на экран будет выведен знак, соответствующий числу 201 в этой кодировке. Например, если на компьютере используется кодировка "Западноевропейская (Windows)", знак "Й" из исходного текстового файла на основе кириллицы будет отображен как "É", поскольку именно этому знаку соответствует число 201 в данной кодировке.

Юникод: единая кодировка для разных алфавитов

Чтобы избежать проблем с кодированием и декодированием текстовых файлов, можно сохранять их в Юникоде. В состав этой кодировки входит большинство знаков из всех языков, которые обычно используются на современных компьютерах.

Так как Word работает на базе Юникода, все файлы в нем автоматически сохраняются в этой кодировке. Файлы в Юникоде можно открывать на любом компьютере с операционной системой на английском языке независимо от языка текста. Кроме того, на таком компьютере можно сохранять в Юникоде файлы, содержащие знаки, которых нет в западноевропейских алфавитах (например, греческие, кириллические, арабские или японские).

Выбор кодировки при открытии файла

Если в открытом файле текст искажен или выводится в виде вопросительных знаков либо квадратиков, возможно, Word неправильно определил кодировку. Вы можете указать кодировку, которую следует использовать для отображения (декодирования) текста.

Откройте вкладку Файл.

Перейдите к разделу Общие и установите флажокПодтверждать преобразование формата файла при открытии.

Примечание: Если установлен этот флажок, Word отображает диалоговое окно Преобразование файла при каждом открытии файла в формате, отличном от формата Word (то есть файла, который не имеет расширения DOC, DOT, DOCX, DOCM, DOTX или DOTM). Если вы часто работаете с такими файлами, но вам обычно не требуется выбирать кодировку, не забудьте отключить этот параметр, чтобы это диалоговое окно не выводилось.

Закройте, а затем снова откройте файл.

В диалоговом окне Преобразование файла выберите пункт Кодированный текст.

В диалоговом окне Преобразование файла установите переключатель Другая и выберите нужную кодировку из списка.

В области Образец можно просмотреть текст и проверить, правильно ли он отображается в выбранной кодировке.

Если почти весь текст выглядит одинаково (например, в виде квадратов или точек), возможно, на компьютере не установлен нужный шрифт. В таком случае можно установить дополнительные шрифты.

Чтобы установить дополнительные шрифты, сделайте следующее:

Выполните одно из указанных ниже действий.

В Windows 7

На панели управления выберите раздел Удаление программы.

В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

В Windows Vista

На панели управления выберите раздел Удаление программы.

В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

В Windows XP

На панели управления щелкните элемент Установка и удаление программ.

В списке Установленные программы щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

В группе Изменение установки Microsoft Office нажмите кнопку Добавить или удалить компоненты и затем нажмите кнопку Продолжить.

В разделе Параметры установки разверните элемент Общие средства Office, а затем — Многоязыковая поддержка.

Выберите нужный шрифт, щелкните стрелку рядом с ним и выберите пункт Запускать с моего компьютера.

Совет: При открытии текстового файла в той или иной кодировке в Word используются шрифты, определенные в диалоговом окне Параметры веб-документа. (Чтобы вызвать диалоговое окно Параметры веб-документа, нажмите кнопку Microsoft Office, затем щелкните Параметры Word и выберите категорию Дополнительно. В разделе Общие нажмите кнопку Параметры веб-документа.) С помощью параметров на вкладке Шрифты диалогового окна Параметры веб-документа можно настроить шрифт для каждой кодировки.

Выбор кодировки при сохранении файла

Если не выбрать кодировку при сохранении файла, будет использоваться Юникод. Как правило, рекомендуется применять Юникод, так как он поддерживает большинство символов большинства языков.

Если документ планируется открывать в программе, которая не поддерживает Юникод, вы можете выбрать нужную кодировку. Например, в операционной системе на английском языке можно создать документ на китайском (традиционное письмо) с использованием Юникода. Однако если такой документ будет открываться в программе, которая поддерживает китайский язык, но не поддерживает Юникод, файл можно сохранить в кодировке "Китайская традиционная (Big5)". В результате текст будет отображаться правильно при открытии документа в программе, поддерживающей китайский язык (традиционное письмо).

Примечание: Так как Юникод — это наиболее полный стандарт, при сохранении текста в других кодировках некоторые знаки могут не отображаться. Предположим, например, что документ в Юникоде содержит текст на иврите и языке с кириллицей. Если сохранить файл в кодировке "Кириллица (Windows)", текст на иврите не отобразится, а если сохранить его в кодировке "Иврит (Windows)", то не будет отображаться кириллический текст.

Если выбрать стандарт кодировки, который не поддерживает некоторые символы в файле, Word пометит их красным. Вы можете просмотреть текст в выбранной кодировке перед сохранением файла.

При сохранении файла в виде кодированного текста из него удаляется текст, для которого выбран шрифт Symbol, а также коды полей.

Выбор кодировки

Откройте вкладку Файл.

Выберите пункт Сохранить как.

Чтобы сохранить файл в другой папке, найдите и откройте ее.

В поле Имя файла введите имя нового файла.

В поле Тип файла выберите Обычный текст.

Если появится диалоговое окно Microsoft Office Word — проверка совместимости, нажмите кнопку Продолжить.

В диалоговом окне Преобразование файла выберите подходящую кодировку.

Чтобы использовать стандартную кодировку, выберите параметр Windows (по умолчанию).

Чтобы использовать кодировку MS-DOS, выберите параметр MS-DOS.

Чтобы задать другую кодировку, установите переключатель Другая и выберите нужный пункт в списке. В области Образец можно просмотреть текст и проверить, правильно ли он отображается в выбранной кодировке.

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

Если разрешена подстановка знаков, знаки, которые невозможно отобразить, будут заменены ближайшими эквивалентными символами в выбранной кодировке. Например, многоточие заменяется тремя точками, а угловые кавычки — прямыми.

Если в выбранной кодировке нет эквивалентных знаков для символов, выделенных красным цветом, они будут сохранены как внеконтекстные (например, в виде вопросительных знаков).

Если документ будет открываться в программе, в которой текст не переносится с одной строки на другую, вы можете включить в нем жесткие разрывы строк. Для этого установите флажок Вставлять разрывы строк и укажите нужное обозначение разрыва (возврат каретки (CR), перевод строки (LF) или оба значения) в поле Завершать строки.

Поиск кодировок, доступных в Word

Word распознает несколько кодировок и поддерживает кодировки, которые входят в состав системного программного обеспечения.

Ниже приведен список письменностей и связанных с ними кодировок (кодовых страниц).

Читайте также: