Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab1-02.doc
Скачиваний:
1
Добавлен:
11.11.2019
Размер:
118.78 Кб
Скачать

3.3. Кодировки Windows

Индикатор текущего языка ввода находится на панели задач справа (символы En обозначают английский язык, Uk – украинский и Ru – русский). Изменить язык ввода можно, щелкнув левой кнопкой мыши по индикатору. В появившемся затем меню следует щелкнуть левой кнопкой мыши по строке нужного языка. Кроме того, при установке или настройке Windows можно выбрать комбинацию клавиш для изменения языка ввода (либо левый Alt+Shift, либо Ctrl+Shift).

Для кодирования текстовых данных в Windows используются три основные кодировки:

  • кодировка OEM;

  • кодировка ANSI;

  • кодировка Unicode.

В режиме командной строки в Windows используется кодовая таблица ASCII (American Standard Code for Information Interchange), разработанная ANSI (American National Standard Institute – Американский национальный институт стандартов). Первая половина таблицы (символы с десятичными кодами от 0 до 127) содержит те символы, которые можно ввести с клавиатуры (точнее с ее символьной зоны). Во второй половине кодовой таблицы (символы с десятичными кодами от 128 до 255) содержатся в основном общепринятые математические и так называемые псевдографические символы (например, "" или ""), использовавшиеся в текстовом режиме для рисования линий и диаграмм.

Однако многие алфавиты используют буквы, отличные от 26 латинских букв, заданных в первой половине кодовой таблицы ASCII. Поэтому были разработаны кодовые страницы и для этих языков. Каждой такой кодовой странице присвоен числовой номер. Так, кодовые страницы с номерами 850 и 852 используются для западноевропейских языков, а кодовая страница 866 – для русского и украинского языков. В этой кодировке символы кириллицы имеют следующие коды: А-Я – 128-159 ('80' - '9F'), а-п – 160-175 ('A0' - 'AF'), р-я – 224-239 ('E0' - 'EF'), Ё – 240 ('F0'), ё – 241 ('F1'), Є – 240 ('F2'), є – 241 ('F3'), Ї – 240 ('F4'), ї – 241 ('F5'), т.е. расположены на тех позициях, где в кодировке ASCII находятся относительно редко используемые символы национальных алфавитов и греческие буквы. Для украинских букв І и і в этой кодировке используются соответствующие латинские буквы с кодами 73 ('49') и 105 ('69').

В терминологии Windows кодировка ASCII называется кодировкой OEM (Original Equipment Manufacturer – производитель оригинального оборудования).

Кодировка ANSI является «родной» кодировкой Windows и была разработана специально для этой операционной системы. Первая половина кодовой таблицы содержит те же символы, что и первая половина кодовой таблицы кодировки ASCII (OEM), т.е. текст на английском языке в обеих кодировках будет выглядеть одинаково. Во второй половине кодовой таблицы ANSI также размещаются буквы национальных алфавитов. Кодовая страница Windows для западноевропейских алфавитов имеет номер 1252, а для языков, использующих буквы кириллицы (в том числе, для русского и украинского языков) – номер 1251. Следует отметить, что коды одних и тех же букв русского и украинского языка в кодовой странице 866 и в кодовой странице Windows-1251 не совпадают. Так, буквы А-Я имеют коды 192-223 ('C0' - 'DF'), а-я – 224-255 ('E0' - 'FF'), Ё – 168 ('A8'), ё – 184 ('B8'), Є – 170 ('AA'), є – 186 ('BA'), Ї – 175 ('AF'), ї – 191 ('BF'), І – 178 ('B2'), і – 179 ('B3'), Ґ – 165 ('A5'), ґ – 180 ('B4').

В кодировке Unicode на каждый символ отводится два байта. Так, коды букв латинского алфавита A-Z и a-z в шестнадцатеричном представлении лежат соответственно в диапазонах '0041' - '005A' и '0061' - '007A'. Коды букв русского алфавита А-Я и а-я лежат соответственно в диапазонах '0410' - '042F' и '0430' - '044F'. Исключением являются буквы Ё и ё, коды которых имеют значения '0401' и '0451'. Буквы украинского алфавита, совпадающие с русскими буквами, имеют те же коды, что и соответствующие русские буквы, а буквы Є, І, Ї, є, і, ї, Ґ и ґ имеют соответственно коды '0404', '0406', '0407', '0454', '0456', '0457', '0490' и '0491'.

Существует несколько разновидностей представления символов в кодировке Unicode. Самой распространенной является кодировка UTF-16, в которой каждый символ представлен двумя байтами, причем в процессоре и в памяти компьютера младший байт ('00' для латинских букв или '04' – для букв кириллицы) размещается вторым, а старший – первым, т.е. буква А будет представлена как '1004'. Такое представление называют также UTF-16 Little Endian (младший байт в конце). Это представление используется в процессорах фирмы Intel и часто называют форматом Intel.

В кодировке UTF-16 Big Endian (старший байт в конце) первым идет младший байт, вторым – старший, т.е. буква А будет представлена как '0410'. Такое представление данных используется в процессорах Motorola и PowerPC и, соответственно, в компьютерах фирмы Apple, использующих эти процессоры (в последнее время появились компьютеры Apple на основе процессоров фирмы Intel).

Формат UTF-8 предназначен для сокращения объема вводимых и выводимых данных. Данные в этом формате представляются по следующему алгоритму:

  • символы Unicode в диапазоне '0000' - '007F' (первые 128 символов) записываются одним байтом (старший байт отбрасывается);

  • символы Unicode в диапазоне '0080' - '07FF' (охватывающем буквы наиболее распространенных национальных алфавитов) записываются двумя байтами следующим образом: символ Unicode с двоичной кодировкой 00000xxxxxyyyyyy (где x и y0 или 1) преобразуется к виду 110xxxxx10yyyyyy;

  • символы Unicode в диапазоне '0800' - 'FFFF' записываются тремя байтами следующим образом: символ Unicode с двоичной кодировкой xxxxyyyyyyzzzzzz (где x, y и z0 или 1) преобразуется к виду 1110xxxx10yyyyyy10zzzzzz.

Для того, чтобы текстовый редактор мог определить, какая из кодировок Unicode использована для содержимого, в самом начале файла помещается символ метки порядка байтBOM (Byte Order Mark). Это либо символ 'FFFE' (для кодировки UTF-16), либо символ 'FEFF' (для кодировки Unicode Big Endian), либо символ 'EFBBBF' (для кодировки UTF-8).

Для представления букв русского и украинского алфавитов существуют также другие кодировки:

  • кодировка Unix (кодовая страница KOI8-R для русского языка и отдельная кодовая страница для украинского языка, иногда называемая KOI8-U);

  • кодировка Apple Macintosh (кодовая страница MacCyrillic);

  • международная кодировка кириллицы ISO8859-5 (относительная кодировка символов в этой кодировке соответствует кодировке Unicode).

Просмотреть используемые кодировки символов в различных шрифтах можно с помощью системного приложения Windows Таблица символов. Запустить это приложение можно в подменю Служебные, которое находится в подменю Стандартные главного меню. Выбор шрифта в диалоговом окне этого приложения производится в поле Шрифт. Если подвести курсор к какому-либо символу шрифта рядом в рамке будет выведен код этого символа и его наименования. Если щелкнуть мышью по символу и нажать кнопку Выбрать, то выделенный символ будет перенесен в поле Для копирования диалогового окна. Выбранные в этом поле символы можно копировать в любое приложение с помощью кнопки Копировать. Эту возможность можно использовать для вставки в текст символов, отсутствующих на клавиатуре (например, греческих букв или математических символов).

Редактор Блокнот позволяет открывать, просматривать и редактировать текст во всех трех кодировках (OEM, ANSI или Unicode), однако для этого необходимо установить соответствующий шрифт с помощью команды Шрифт меню Формат. Для кодировки OEM устанавливается шрифт Terminal, а для кодировок ANSI или Unicode можно установить любой шрифт типа TrueType (со значком ) или OpenType (со значком ), например, Times New Roman, Arial, Verdana или Courier New.

Текстовый файл в кодировке OEM, открытый в редакторе Блокнот, можно сохранить только в этой кодировке. Текст в кодировке ANSI или Unicode можно сохранить в одной из следующих кодировок: ANSI, UTF-16, UTF-16 Big Endian и UTF-8. Для этого в диалоговом окне команды Сохранить как меню Файл необходимо выбрать соответствующее значение в поле Кодировка: ANSI, Юникод, Юникод Big Endian или UTF-8. По умолчанию текст в редакторе Блокнот сохраняется в кодировке ANSI.

Редактор Блокнот не позволяет производить преобразование содержимого файла из кодировки OEM в кодировку ANSI, а также выполнять обратное преобразование. Для этого можно использовать либо использовать командную оболочку Far, либо воспользоваться редактором Word (эта возможность будет рассмотрена в лабораторной работе 1-07).

В командной оболочке Far надо сначала щелкнуть мышью по наименованию файла в кодировке OEM и нажать клавишу F4 (редактирование файла). В окне редактора помощью клавиш Ctrl+A выделяется содержимое всего файла, а затем с помощью клавиш Ctrl+C содержимое файла копируется в буфер обмена. Выход из редактора выполняется с помощью клавиши Esc.

После этого с помощью команды

copy con имя-файла.txt

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

Затем открывается (с помощью клавиши F4) полученный пустой файл и в нем с помощью переключателя F8 устанавливается кодировка Windows (значение режима кодировке в первой строке редактора должно быть Win) и содержимое буфера обмена копируется в файл с помощью клавиш Ctrl+V. Содержимое файла в редакторе сохраняется с помощью клавиши F2.

Иногда необходимо просмотреть содержимое файла непосредственно в шестнадцатеричном виде, при этом каждый байт представляется двумя шестнадцатеричными цифрами. Такую возможность предоставляют многие командные оболочки (например, Far или Total Commander). Кроме того, существует целый класс текстовых редакторов, называемых HEX-редакторами, специально предназначенных для просмотра и изменения содержимого файлов, дисков и оперативной памяти.

Для просмотра содержимого текстового файла в Far щелкните мышью по наименованию файла и нажмите клавишу F3 (просмотр файла). Для вывода содержимого в шестнадцатеричном виде нажмите затем клавишу F4 (эта клавиша переключает режим просмотра с текстового на шестнадцатеричный и обратно).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]