Для кодирования текстовой информации используются специальные таблицы. Каждому символу алфавита соответствует определенное целое число. Чаще всего используется восьмиразрядные двоичные числа. С их помощью можно закодировать 256 символов. Это вполне достаточно чтобы выразить все символы, как английского, так и русского алфавита, знаки препинания, цифры, знаки арифметических операций и некоторые специальные символы.
В 1968 году Национальным институтом стандартизации США был принят стандарт ASCII (American Standard Code for Information Interchange — стандартный код информационного обмена США). Система кодирования ASCII разделена на две страницы: базовую и расширенную. Базовая таблица определяет значения кодов от 0 до 127, расширенная – от 128 до 255.
Первые 32 кода относятся к управляющим. За ними не закреплены никакие символы языков и предназначены они для управления различными устройствами.
Аналогичные системы кодирования текстовых документов были разработаны и в других странах. Например, в 1974 году Государственный комитет по стандартизации утвердил стандарт ГОСТ 19768-74, согласно которому внедрялись сразу две схемы кодирования. Одна из них получила название ГОСТ-альтернативной. Впоследствии корпорация IBM опубликовала эту схему в своем корпоративном стандарте, и схема получила название CP 866 (Code page 866). Другая называлась ДКОИ (двоичный код обмена информацией) и стала основной для сетевых ЭВМ, работающих под управлением операционной системы UNIX. Сегодня данная схема называется КОИ-8 (код обмена информацией, восьмиразрядный). После распада СССР различают отдельные схемы кодирования для России (КОИ-8Р) и Украины (КОИ-8У).
Наглядным примером корпоративного стандарта является схема кодирования Windows-1251, которую ввела в действие корпорация Microsoft. Никакими государственными или международными стандартами эта схема не поддержана, однако является самой распространенной на компьютерах платформы IBM PC.
Формально для России имеет наивысший приоритет схема кодирования – ISO-8859, поскольку она утверждена Международным институтом стандартизации. Однако на практике документы, использующие эту схему, встречаются редко, особенно на компьютерах платформы IBM PC.
Существование множества таблиц кодирования сильно затрудняет информационный обмен. Приходится создавать программы, которые способны работать с различными кодировками. Это приводит к не рациональному использованию средств. Требуется создать универсальную кодовую таблицу, но это не возможно сделать, если кодировать символы восьмиразрядным кодом.
В конце 80х годов был созван международный консорциум Unicode, который классифицировал национальные письменные системы и изучил их особенности. В результате этой работы был разработан международный стандарт кодирования. В его основе лежат три положения:
1. Каждый символ имеет уникальное имя.
2. Каждый символ имеет уникальный номер, определяющий его позицию в таблице кодирования.
3. Каждый символ можно представить его позицией, выраженной 16-разрядным двоичным кодом.
32 | пробел | 48 | 0 | 64 | @ | 80 | P | 96 | ` | 11 | p |
33 | ! | 49 | 1 | 65 | A | 81 | Q | 97 | a | 113 | q |
34 | " | 50 | 2 | 66 | B | 82 | R | 98 | b | 114 | r |
35 | # | 51 | 3 | 67 | C | 83 | S | 99 | c | 115 | s |
36 | $ | 52 | 4 | 68 | D | 84 | T | 100 | d | 116 | t |
37 | % | 53 | 5 | 69 | E | 85 | U | 101 | e | 117 | u |
38 | & | 54 | 6 | 70 | F | 86 | V | 102 | f | 118 | v |
39 | ' | 55 | 7 | 71 | G | 87 | W | 103 | g | 119 | w |
40 | ( | 56 | 8 | 72 | H | 88 | X | 104 | h | 120 | x |
41 | ) | 57 | 9 | 73 | I | 89 | Y | 105 | i | 121 | y |
42 | * | 58 | : | 74 | J | 90 | Z | 106 | j | 122 | z |
43 | + | 59 | ; | 75 | K | 91 | [ | 107 | k | 123 | { |
44 | , | 60 | < | 76 | L | 92 | \ | 108 | l | 124 | |
45 | - | 61 | = | 77 | M | 93 | ] | 109 | m | 125 | } |
46 | . | 62 | > | 78 | N | 94 | ^ | 110 | n | 126 | ~ |
47 | / | 63 | ? | 79 | O | 95 | _ | 111 | o | 127 | неразрывный пробел |