Кодирование символьной информации
Для представления символьной информации в компьютере используются наборы символов (кодовые таблицы). В кодовой таблице каждому символу соответствует целое число – код этого символа. При вводе, выводе, хранении и обработке символьной информации все операции выполняются над соответствующими кодами. До недавнего времени наиболее широко использовался набор ASCII (American Standard Code for Interchange Information) – американский стандартный код для обмена информацией. Символы в этом случае кодируются 8-разрядными числами. Таким образом, кодовая таблица содержит 256 различных символов. Половина кодов является постоянными (управляющие символы, символы английского алфавита, цифровые символы, знаки пунктуации и др.), а другая половина может быть изменена (например, часть символов может быть заменена на символы русского или любого другого алфавита). Таблица ASCII-кодов приведена на рис. 5.9. Недостатком ASCII явилось ограниченное количество символов, что затрудняет его использование для представления многоязычных текстов и обмена информацией. Для решения проблем, связанных с унификацией символьной информации, был предложен стандарт Unicode. Он разработан и поддерживается консорциумом, в который входят важнейшие субъекты компьютерного рынка (Adobe, Aldus, Apple, IBM, Lotus, Microsoft, Xerox и др.). Он покрывает языки Америки, Европы, Среднего Востока, Африки, Индии, Азии и Океании, а также мертвые языки и технические символы. С помощью Unicode предполагается разрешить проблемы интернационализации в многоязычной компьютерной среде.
Набор символов Unicode можно использовать для всех известных кодировок. В нем используется числовое значение и имя для каждого символа. Кодировка символов специфицирует идентификацию символа и числовое значение (кодовую позицию), а также битовое представление этого значения. 16-битное числовое значение (кодовое значение) определяется шестнадцатеричным числом и префиксом U, например, U+0041 представляет букву A. Уникальное имя для этого символа – LATIN CAPITAL LETTER A. Unicode совместим с ASCII и поддерживается многими программами. Первые 128 символов Unicode соответствуют символам ASCII и имеют те же байтовые значения. Например, строка «Hello» с помощью символов Unicode будет иметь вид: U+0048 U+0065 U+006C U+006C U+006F. В отличие от ASCII, который поддерживает латинский алфавит и использует набор 8-битных символов, Unicode использует 16-битное значение для каждого символа. Это позволяет кодировать десятки тысяч символов. Unicode версии 2.0 содержит 38885 символов. Он также поддерживает механизм расширения, Transformation Format (UTF), называемый UTF-16, который позволяет кодировать более миллиона символов использованием 16-битных пар. Unicode полностью совместим с International Standard ISO/IEC 10646-1, 1993, который является поднабором ISO 10646, и поддерживает ISO UCS-2 (Universal Character Set), который использует два восьмеричных значения (2 байта или 16 битов). Пример 5.24.. Представим последовательность символов «ABCDFG» (в кодах ASCII и Unicode) и определим объемы кодовых последовательностей (в байтах). 1. В коде ASCII заданная последовательностей будет иметь вид: 0x41 0x42 0x43 0x44 0x45 0x46. 2. В коде Unicode эта последовательность будет представлена следующим образом: U+0041 U+0042 U+0043 U+0044 U+0045 U+0046. 3. Объем последовательности в ASCII-коде равен 6 байтам. 4. Объем последовательности в Unicode-коде равен 12 байтам.
|