Кодирование символьной информации в ЭВМ.
Символы (characters) в компьютере хранятся в виде числового кода, причем каждому символу ставится в соответствие своя уникальная комбинация двоичных разрядов. В этом случае текст будет представлен как длинный ряд битов, в котором следующие друг за другом комбинации битов отражают последовательность символов в исходном тексте. Присвоение символу конкретного двоичного кода – это вопрос соглашения, которое фиксируется в кодовой таблице.
Таблица, в которой устанавливается однозначное соответствие между символами и их порядковыми номерами, называется таблицей кодировки.
Для разных типов ЭВМ используются различные таблицы кодировки. С распространением ПК типа IBM PC международным стандартом стала таблица кодировки под названием ASCII. Американский национальный институт стандартов (American National Standards Institute, ANSI) принял американский стандартный код для обмена информацией (American Standard Cod for Information Interchange - ASCII), который приобрел очень большую популярность. В этом коде комбинации двоичных разрядов длиной 7 бит используются для представления строчных и прописных букв английского алфавита, знаков пунктуации, цифр от 0 до 9, а также кодов управления передачей информации (перевод строки, возврат каретки, табуляции и т.п.). Определим мощность алфавита, зная, что каждый символ несет 7 бит информации: N = 27 = 128, т.е. 7-ю битами можно закодировать 128 различных символов. Управляющие символы получили коды 0..31, 127. Символы, видимые на экране дисплея или на бумаге при печати, получили коды 32..126. В наше время код ASCII часто употребляется в расширенном восьмиразрядном формате, который получается добавлением нуля в старший (7-ой) разряд байта. Но байт дает нам возможность закодировать 256 различных символов (N = 28 = 256)! Следовательно, при использовании 7-битовой кодировки остается незадействованной половина кодовой таблицы. Поэтому коды 128..255, получаемые добавлением 1 в старший разряд байта, были выделены для представления символов, не поддерживаемых исходной версией кода ASCII - так называемых национальных символов и алфавитов, а также для символов псевдографики. Естественно, эти коды отличаются для разных стран, отличаются они, к сожалению, и для разных операционных систем. Например, для кириллицы в операционной системе MS DOS довольно долгое время существовали 3 разные кодовые таблицы, пока не был принят единый стандарт – "альтернативная" кодировка (Code Page 866), в терминологии фирмы Microsoft – кодировка CP-866. В рамках Windows появился новый стандарт кодирования символов – Windows ANSI, который тоже является однобайтовой схемой кодирования. Первые символы 0..127 соответствуют кодировке ASCII, вторая половина – опять национальные алфавиты. Соответственно для кириллицы тоже появилась другая кодировка Win – кодовая страница (Code Page 1251) – CP1251. Все Windows-приложения, работающие с русским языком, поддерживают эту кодировку. Хронологически одним из первых стандартов кодирования русских букв на компьютерах был код КОИ-8 (код обмена информацией 8-битный). Эта кодировка (KOI-8r) применяется на компьютерах с операционной системой UNIX. Фирма Apple разработала для компьютеров Macintosh свою собственную кодировку русских букв MAC. Международная организация по стандартизации (International Standard Organization – ISO) утвердила в качестве стандарта для русского языка кодировку под названием ISO 8859-5. В ISO – коде для выражения символов используется комбинация из 32-х бит, в результате чего этот код позволяет представлять более 17 миллионов символов. В большинстве случаев пользователь не должен заботиться о перекодировке текстовых документов. При работе в приложениях Windows предусмотрена возможность автоматической перекодировки документов, созданных в приложениях MS-DOS. При работе в Интернет с использованием браузеров Internet Explorer и Netscape Communicator происходит автоматическая перекодировка Web-страниц. А что делать тем, у кого, например, иероглифы? Как им работать с компьютером? Был придуман Unicode (юникод) – стандарт кодировки символов, имеющий фиксированную длину представления одного символа 16-ю битами (2 байта) и позволяющий закодировать все алфавиты в мире (6800 различных языков). (216 = 65536) Это – родной кодовый набор для Windows NT. Эту кодировку поддерживает платформа Microsoft Windows & Office 97. Стандарт Unicode определяет коды для знаков, применяемых во всех современных письменных языках. Это и латинский алфавит для английского языка, кириллический алфавит для русского и других славянских языков, греческий, иврит и арабский алфавиты, другие алфавиты, используемые в странах Европы, Африки, Индокитая и Азии. Самая большая часть этого стандарта посвящена тысячам объединенных знаков для китайских, японских и корейских иероглифов. Unicode включает много наборов символов с кодами знаков пунктуации, математических и технических символов, стрелок и др. Всего Unicode обеспечивает коды более чем 29000 знаков мировых алфавитов, наборов иероглифов и символов. Кроме того содержит в резерве еще более чем 29000 кодов для расширения и отводит около 6000 кодов для частного применения, их могут использовать разработчики программного обеспечения и аппаратных средств для собственных знаков и символов. Для более легкого внедрения Unicode в качестве всемирного знакового стандарта для кодирования текста в нем реализованы следующие принципы: · используются фиксированные 16-битные коды для знаков и нет зависимости от состояний или способов кодировки специальных знаков; · Unicode включает наборы знаков многих существующих стандартов: например, Latin-1 как свои первые 256 знаков, кроме того, он включает репертуар знаков других общих, национальных и международных стандартов; · Unicode использует унификацию Хана для объединения китайских, корейских и японских иероглифов; · Unicode допускает создание отмеченных знаков: он кодирует каждый знак и диакрит или метку гласного отдельно, а также позволяет объединять знаки, чтобы создать отмеченные. До недавнего времени Unicode был одним из двух проектов международных стандартов кодировки наряду с другим, известным как ISO 10646. Соглашение между Консорциумом Unicode и Комитетом ISO 10646 произвело слияние двух проектов: Unicode теперь является собственным подмножеством набора знаков ISO 10646. Основные коды стандарта Unicode составляют первые 65536 кодов стандарта ISO 10646 и содержат все знаки, в настоящее время определенные ISO 10646. Остальные коды ISO 10646 остаются незаполненными и зарезервированы для будущего расширения. Чтобы отразить знаки, имеющиеся в ISO 10646, стандарт Unicode включил более чем 3600 новых китайских, японских и корейских знаков и более чем 1000 других знаков. Слияние стандартов Unicode и ISO 10646 зафиксировало только один развиваемый проект международного стандарта кодировок и остановило сражение между стандартами.
Символы с кодами 0-31 относятся к служебным. Они представляют собой команды, вывод которых на стандартное выходное устройство приводит к выполнению определённых действий. Вот назначение некоторых из них:
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|