3.1 Стандарты кодирования символов ASCII, ANSI, КОИ-8 и UNICODE.

Представление символов  в электронных изданиях базируется на таблицах кодов, в которых каждому из отображаемых на экране символов соответствует код от 0 до 255. Первые 127 кодовых комбинаций  используются для латинских букв и цифр, знаков пунктуации и т. д., и, как правило, строятся по единому принципу.

Стандарт представления символов ASCII представляет собой 7-битное описание кода символа. Поскольку в персональных компьютерах используются байты, состоящие из 8 битов, то производители компьютеров часто определяют наборы символов, использующие 256 кодов вместо 128 кодов ASCII. В результате получается “расширенный набор символов” (extended character set), который включает в себя набор символов ASCII и до 128 других символов.

В начале 80-х годов производители IBM PC решили расширить набор символов ASCII так, как показано на рис. 1. Коды от 20h до 7Åh – это выводимые на дисплей символы из набора символов ASCII. Оставшиеся символы являются нестандартными или, по крайней мере, на тот момент являлись нестандартными.

Этот набор символов закодирован в миллионах микросхем ПЗУ в видеоадаптерах, принтерах и микросхемах BIOS. Он был растиражирован в аппаратуре многочисленных производителей IBM-ñîâìåñòèìûõ компьютеров и периферии. Для множества программ, работающих в текстовом режиме и написанных не для MS Windows, требует>ся этот расширенный набор символов, поскольку в них для вывода информации на экран используются символы псевдографики – символы блоков и линий (коды от В0h до D0h).

Рис. 1 Расширенный набор символов IBM. (Упорядочен по возрастанию значений кода символов).

Известно несколько вариантов кодирования символов IBM, которые называются «кодовые страницы» (code pages). Вариант, используемый в Соединенных Штатах Америки и большинстве европейских стран, называется Code Page 437. В системах, используемых в Норвегии, Дании, Португалии и некоторых других странах Европы, используются другие специальные кодовые страницы, в которых содержится большее количество специальных символов, необходимых для языков этих стран. В последнее время некоторые из этих стран начали использовать кодовую страницу Code Page 850, в которой содержится меньшее количество псевдографических символов. За этот счет добавлены дополнительные символы, знаки ударения и других специальных символов.

Расширенный набор символов, который Windows и программы для Windows в большинстве случаев используют, называется “набор символов ANSI(ANSI character set), и фактически он является международным стандартом ISO. Кодовая таблица стандарта ANSI представлена на рис. 2.

Рис. 2. Набор символов ANSI. (Упорядочен по возрастанию значения кода).

В нашей стране кодовые комбинации, начиная с 128 используются для кодирования символов  кириллицы, математических символов и др. информации. Причем для каждой платформы используется свое расположение символов в кодовой таблице. Так известны кодировки Windows, Mac, DOS-OS/2, ISO (Dec) и КОИ-8. Поэтому приходится осуществлять  перекодировки символов кириллицы электронных изданий в зависимости от используемой  платформы.

Справедливости ради, следует отметить, что существуют «Основная кодировка ГОСТа», «Альтернативная кодировка ГОСТа» и кодировка КОИ-8. В последнем случае символы кириллицы имеют коды: А  Я – 224 –254 (не в алфавитном порядке); а-я – 192-223 (не в алфавитном порядке).

По мнению специалистов «Альтернативные кодировки ГОСТа» используют под кодировки символов кириллицы позиции, где в кодировке IBM расположены относительно редко используемые символы национальных алфавитов, греческие буквы  и некоторые математические символы.

На рис. 3 приведена таблица кодировки символов кириллицы для Альтернативной кодировки ГОСТа (Alt), Основной кодировки ГОСТа (Mai), Кодировки MIC и КОИ-8.

Рис. 3 Кодировки символов кириллицы

Стандарт кодировки символов UNICODE. Стандарт Unicode был предложен некоммерческой организацией Unicode Consortium, образованной в 1991 г. Для представления каждого символа в этом стандарте используются два байта: один байт для кодирования символа, другой для кодирования признака. Тем самым обеспечивается информационная совместимость данного способа кодирования со стандартом ASKII.

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

Кодовое пространство Unicode разделено на несколько областей. Область с кодами от 0000 до 007F содержит символы набора Latin 1 (младшие байты соответствуют кодировке ISO 8859-1). Далее идут области, в которых расположены знаки различных письменностей, а также знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем (29000). 6000 кодовых комбинаций оставлено программистам.

Символам кириллицы выделены коды в диапазоне от 0400 до 0451

Ниже приведена основополагающая таблица использования кодового пространства UNICOD (Табл. 1).

Таблица 1

Начало области

Конец области

Набор символов

0000

007F

Basic Latin

0080

00FF

Latin-1 Supplement

0100

017F

Latin Extended-A

0180

024F

Latin Extended-B

0250

02AF

IPA Extensions

02B0

02FF

Spacing Modifier Letters

0300

036F

Combining Diacritical Marks

0370

03FF

Greek

0400

04FF

Cyrillic

0530

058F

Armenian

0590

05FF

Hebrew

0600

06FF

Arabic

0700

074F

Syriac

0780

07BF

Thaana

0900

097F

Devanagari

0980

09FF

Bengali

0A00

0A7F

Gurmukhi

0A80

0AFF

Gujarati

0B00

0B7F

Oriya

0B80

0BFF

Tamil

0C00

0C7F

Telugu

0C80

0CFF

Kannada

0D00

0D7F

Malayalam

0D80

0DFF

Sinhala

0E00

0E7F

Thai

0E80

0EFF

Lao

0F00

0FFF

Tibetan

1000

109F

Myanmar

10A0

10FF

Georgian

1100

11FF

Hangul Jamo

1200

137F

Ethiopic

13A0

13FF

Cherokee

1400

167F

Unified Canadian Aboriginal Syllabics

1680

169F

Ogham

16A0

16FF

Runic

1780

17FF

Khmer

1800

18AF

Mongolian

1E00

1EFF

Latin Extended Additional

1F00

1FFF

Greek Extended

2000

206F

General Punctuation

2070

209F

Superscripts and Subscripts

20A0

20CF

Currency Symbols

20D0

20FF

Combining Marks for Symbols

2100

214F

Letterlike Symbols

2150

218F

Number Forms

2190

21FF

Arrows

2200

22FF

Mathematical Operators

2300

23FF

Miscellaneous Technical

2400

243F

Control Pictures

2440

245F

Optical Character Recognition

2460

24FF

Enclosed Alphanumerics

2500

257F

Box Drawing

2580

259F

Block Elements

25A0

25FF

Geometric Shapes

2600

26FF

Miscellaneous Symbols

2700

27BF

Dingbats

2800

28FF

Braille Patterns

2E80

2EFF

CJK Radicals Supplement

2F00

2FDF

Kangxi Radicals

2FF0

2FFF

Ideographic Description Characters

3000

303F

CJK Symbols and Punctuation

3040

309F

Hiragana

30A0

30FF

Katakana

3100

312F

Bopomofo

3130

318F

Hangul Compatibility Jamo

3190

319F

Kanbun

31A0

31BF

Bopomofo Extended

3200

32FF

Enclosed CJK Letters and Months

3300

33FF

CJK Compatibility

3400

4DB5

CJK Unified Ideographs Extension A

4E00

9FFF

CJK Unified Ideographs

A000

A48F

Yi Syllables

A490

A4CF

Yi Radicals

AC00

D7A3

Hangul Syllables

D800

DB7F

High Surrogates

DB80

DBFF

High Private Use Surrogates

DC00

DFFF

Low Surrogates

E000

F8FF

Private Use

F900

FAFF

CJK Compatibility Ideographs

FB00

FB4F

Alphabetic Presentation Forms

FB50

FDFF

Arabic Presentation Forms-A

FE20

FE2F

Combining Half Marks

FE30

FE4F

CJK Compatibility Forms

FE50

FE6F

Small Form Variants

FE70

FEFE

Arabic Presentation Forms-B

FEFF

FEFF

Specials

FF00

FFEF

Halfwidth and Fullwidth Forms

FFF0

FFFD

Specials

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

Некоторые программы, например, ядро Windows NT, ее графический интерфейс (GDI) и файловая система (NTFS) реализованы с использованием Unicode. Программы, запущенные в среде NT, могут работать также с однобайтовыми символами, кодировка которых в этом случае соответствует установленной по умолчанию кодовой странице ANSI (для России – Windows Cyrillic).

Перед вызовом некоторых функций программного интерфейса NT программы, работающие с кодовой страницей ANSI, преобразуют однобайтовые символы в Unicode. Чтобы преобразование выполнялось без ошибок, обычно указывается страна в приложении Regional Settings. Такой же подход используется для корректной работы с национальными символами программ, в среде MS-DOS

В отличие от Windows NT, ядро и графический интерфейс Windows 95 не используют Unicode, а работают с кодовыми страницами. Однако в этой ОС предусмотрена возможность динамического изменения наборов символов и раскладок клавиатуры, что позволяет создавать документы, содержащие одновременно символы из разных наборов. Буфер обмена Windows 95 способен хранить тексты в формате CF_UNICODETEXT. В составе Windows 95и более поздних версий поставляется набор шрифтов Unicode, с которыми, в частности, могут работать программы Microsoft Office.

Выяснить, какие наборы символов присутствуют в том или ином шрифте Unicode, можно с помощью стандартной утилиты Character Map (таблица символов), включенной в состав Windows NT . Выбрав в списке Subset строку Cyrillic, вы увидите таблицу с символами кириллицы, соответствующую кириллической области Unicode.

Использование Unicode значительно упрощает создание многоязычных документов, публикаций и программных приложений. Поэтому следует ожидать его широкого использования в электронных изданиях.

Hosted by uCoz