Учебник для вузов Общие сведения Аппаратное обеспечение
Скачать 5.31 Mb.
|
Кодирование информацииВся информация, которую хранит, обрабатывает и передает по сетям компьютер, представлена в виде двоичных чисел. Существуют междуна- родные стандарты и методы кодирования текстовой, числовой, изобрази- тельной, звуковой и видеоинформации. Знание основных кодовых таблиц очень важно для правильного чтения информации Интернета, электронной почты, текстовых документов в кодировке различных операционных си- стем. Кодирование текстовой информацииДля кодирования букв и других символов, используемых в печатных документах, необходимо закрепить за каждым символом числовой номер – код. В англоязычных странах используются 26 прописных и 26 строчных букв (A … Z, a … z), 9 знаков препинания (., : ! " ; ? ( ) ), пробел, 10 цифр, 5 знаков арифметических действий (+,-,*, /, ^) и специальные символы (№, %, _, #, $, &, >, <, |, \) – всего чуть больше 100 символов. Таким образом, для кодирования этих символов можно ограничиться 7-разрядным двоич- ным числом (от 0 до 1111111, в десятичной системе счисления – от 0 до 127). Первой такой 7-разрядной кодовой таблицей была ASCII (American Standard Code for Information Interchange), опубликованная как стандарт в 1963 г. американской организацией по стандартизации American Standards Association (ASA), которая позднее стала именоваться ANSI(American National Standards Institute, http://www.ansi.org/, поэтому данную кодовую таблицу называют также и ANSI). Таблица содержала 32 кода команд или управляющих символов (от 0 до 31), большая часть которых сегодня не используется, и 95 кодов (от 33 до 127) для различных знаков, достаточных для работы с английскими текстами, как показано на рисунке 1.1. На ри- сунке 1.1 символы построчно имеют следующие коды в шестнадцатерич- ной системе счисления (в скобках – в десятичной): – 1-я строка с 00 по 0F и далее с 10 по 1F (0 – 15, 16 - 31), – 2-я строка с 20 по 2F и 30 – 3F (32 – 47, 48 - 63), – 3-я строка с 40 по 4F и 50 – 5F (64 – 79, 80 -95), – 4-я строка с 60 по 6F и 70 – 7F (96 – 111, 112 -127). В данной таблице для преобразования прописных букв в строчные достаточно к коду букву прибавить 32 и, наоборот, для преобразования строчных в прописные из кода буквы вычесть 32. Рисунок 1.1. 7-битная кодовая таблица ASCII(ANSI) В последующем данная таблица ASCII была принята как стандарт ведущими международными организациями по стандартизации: ISO/IEC646:1991(ISO– http://www.iso.org/– International Organiza- tion for Standardization и IEC– http://www.iec.ch/– International Electrotech- nical Commission – ведущие международные организации по стандартиза- ции, в области электротехники – совместные стандарты), ITU-TRecom-mendation T.50 (09/92) (The International Telecommunication Union – http://www.itu.int/), ECMA-6 (European Computer Manufacturers Association). Однако для нашей страны и многих других стран необходимо было добавить в кодовую таблицу символы национальных алфавитов. Для этого было предложено использовать 8-битную кодовую таблицу, которая могла содержать дополнительно еще 128 символов (с 128 по 255). В дальнейшем был принят стандарт на 8-битную таблицу ASCII – ISO/IEC 8859, в которой первые 128 символов оставались те же, что и в 7- битной таблице, а символы с 128 по 255 отводились для неанглийских символов. Существует несколько частей этого стандарта: ISO/IEC8859-1:1998– Part 1: Latin alphabet No. 1, ISO/IEC8859-5:1999– Part 5: Latin/Cyrillic alphabet, ISO/IEC8859-6:1999– Part 6: Latin/Arabic alphabet, ISO/IEC8859-7:2003– Part 7: Latin/Greek alphabet, ISO/IEC8859-8:1999– Part 8: Latin/Hebrew alphabet и т. д. На рисунке 1.2 представлена вторая половина кодовой таблицы (ко- ды 128-255) для стандарта ISO8859-5. Рисунок 1.2. Кодовая таблица ISO 8859-5 (коды с 12810 по 25510) Первые русские ЭВМ использовали 7-битную кодировку символов КОИ-7 (Код Обмена Информацией семибитный – рисунок 1.3), в которой присутствовали прописные латинские буквы, а на месте строчных латин- ских были русские прописные буквы (кириллица). Рисунок 1.3. 7-битная таблица символов КОИ-7 Позднее на первых отечественных персональных компьютерах ис- пользовалась так называемая «Основная кодировка ВЦ Академии Наук СССР», в руководствах к старым матричным принтерам обозначаемая просто как «ГОСТ» – 8-битная кодовая таблица, вторая половина которой содержала символы псевдографики, русские прописные и строчные буквы (коды с 128 по 255 – рисунок 1.4). Рисунок 1.4. Кодировка символов «ГОСТ»(коды с 12810 по 25510) В дальнейшем основной кодировкой русских букв для первой опера- ционной системы ПК – MS DOS стала «Альтернативная кодировка ВЦ Академии Наук СССР» (вторая половина таблицы для кодов 128-255 при- ведена на рисунке 1.5). Содержит псевдографику (позволяющую в тексто- вом режиме рисовать рамки из одинарных и двойных линий). Существует несколько модификаций, отличающихся символами в последних 14 пози- циях. Зарегистрирована в IANA (InternetAssignedNumbersAuthority–ор- ганизация, отвечающая за административное управление в Internet) как IBM866 или CP866. Рисунок 1.5. Таблица символов DOS Cyrillic (CP866, коды с 12810 по 25510) С широким распространением операционной системы Microsoft Windows и появлением ее национальных локализаций для второй полови- ны таблицы ASCII было введено понятие «кодовая страница» (code page, CP). Полная таблица кодовых страниц Microsoft Windows приведена в Приложении 1. Несколько наиболее важных кодировок показаны в таблице 1.1. Таблица 1.1. Некоторые национальные кодовые страницы (CP) операционной системы Microsoft Windows
Кодировка русских букв в операционной системе Microsoft Windows – CP1251 – показана на рисунке 1.6. Рисунок 1.6. Таблица символов CP1251 (коды с 12810 по 25510) В операционной системе Linux для представления русских букв ис- пользуется кодировка КОИ-8R (рисунок 1.7), зарегистрированная в IANA как KOI8-R(http://koi8.pp.ru/). Рисунок 1.7. Таблица символов KOI8-R (коды с 12810 по 25510) Стандартизован и зарегистрирован также украинский клон КОИ-8 – KOI8-U (рисунок 1.8), имеющий отличия от KOI8-R во второй строке сим- волов псевдографики. Рисунок 1.8. Таблица символов KOI8-U (коды с 12810 по 25510) Кириллица Macintosh (компьютеров фирмы Apple), она же CP10007, довольно близка к CP1251. Не зарегистрирована в IANA, но часто обозна- чается как x-mac-cyrillic (рисунок 1.9). Рисунок 1.9. Macintosh Cyrillic, CP10007 (коды с 12810 по 25510) В 1991 году в Калифорнии была создана некоммерческая организа- ция Unicode Consortium, в которую входят представители многих компь- ютерных фирм (Borland, IBM, Lotus, Microsoft, Novell, Sun, WordPerfect и др.), и которая занимается развитием и внедрением стандарта «The Unicode Standard». Стандарт кодирования символов Unicode становится доминирую- щим в интернациональных программных многоязычных средах. Microsoft Windows NT и его потомки Windows 2000, 2003, XP, Vista используют Unicode, точнее UTF-16, как внутреннее представление текста. UNIX- подобные операционные системы типа Linux, BSD и Mac OS X приняли Unicode (UTF-8), как основное представления многоязычного текста. Unicode резервируют 1114112 (220+216) символов кода, в настоящее время используются более 96000 символов. Первые 256 кодов символов точно соответствуют таковым ISO8859-1, наиболее популярной 8- разрядной таблицы символов «западного мира»; в результате, первые 128 символов также идентичны таблице ASCII. На рисунке 1.10 показан рус- ский блок Unicode (коды от 040016 до 04FF16). Рисунок 1.10. Кириллица в Unicode Кодовое пространство стандарта Unicode разделено на 17 планов («planes»), и каждый план имеет 65536 (= 216) точек кода. Первый план (план 0), Основной Многоязычный План (BMP – Basic Multilingual Plane) – тот, в котором описано большинство символов. BMP содержит символы почти для всех современных языков, и большое количество специальных символов. Еще два плана используются для «графических» символов. План 1, Дополнительный Многоязычный План (SMP – Supplementary MultilingualPlane) главным образом используется для исторических символов, а также используется для музыкальных и математических символов. План 2, Supplementary Ideographic Plane (SIP), используется для приблизительно 40000 редких китайских иероглифов. План 15 и План 16 открыт для любо- го частного использования. В то же время, подобно двоичным файлам, кодировка Unicode мало подходит для непосредственной передачи по сети – байты в тексте вполне могут приходиться на область управляющих символов, поэтому обычно применяются две другие основанные на Unicode кодировки переменной длины, обозначаемые как UTF (Unicode Transformation Format): 7- битная UTF-7 (последний пересмотр – RFC2152, 1997 г., зарегистрирована в IANA как UTF-7) и 8-битная UTF-8 (RFC2279, 1998 г., зарегистрирована в IANA как UTF-8). Обе они в каком-то смысле уже не являются языковы- ми кодировками, а являются программно распознаваемым кодом относи- тельно исходного Unicode, но зарегистрированы они именно как кодиров- ки, наравне с ISO 8859-5 или KOI8-R. Естественно, обе они не являются специфически «русскими», а пригодны для написания «сколько угодно»- язычного письма. В UTF-8 все символы разделены на несколько групп по значению первых битов. Символы с кодами менее 12810 кодируются одним байтом, первый битом которого равен нулю, а последующие 7 бит в точности соот- ветствуют 128 символам 7-й таблицы ASCII (см. таблицу 1.2), следующие 1920 символов – двумя байтами (Greek, Cyrillic, Coptic, Armenian, Hebrew и Arabic символы). Последующие символы кодируются тремя и четырьмя байтами. Таблица 1.2. Принцип кодирования символов в UTF-8
Особняком стоит 7-битная, русская кодировка – транслитерация, или транскириллица, когда русские буквы передаются похожими по зву- чанию английскими primerno takim obrazom.
Таким образом, в настоящее время при работе в Интернете Вы може- те встретить следующие кодировки для кириллицы: CP1251– Cyrillic Windows – операционной системы Microsoft Windows; CP866– Cyrillic DOS – операционной системы MS DOS; ISO 8859-5– Cyrillic ISO – 8-ми битная таблица ASCII ; KOI8-R– операционной системы Linux; CP10007– операционной системы компьютеров Macintosh; UTF-8 – универсальная Unicode кодировка переменной длины. |