Пн. Июн 1st, 2026

1. Основные понятия

Кодирование текста — преобразование символов в двоичные коды.

Исторические этапы:

  1. ASCII (1963) — 128 символов
  2. Расширенные кодировки (CP1251, KOI8-R) — 256 символов
  3. Unicode (1991) — все языки мира

2. Кодировка ASCII

Особенности: 7 бит (128 символов), первые 32 — управляющие.

Таблица ASCII:

ДиапазонТип символовПримеры
0-31УправляющиеEnter (13), Tab (9)
32-47Знаки препинания! (33), # (35)
48-57Цифры0 (48), 9 (57)
65-90Латинские заглавныеA (65), Z (90)
97-122Латинские строчныеa (97), z (122)

Пример:

'A' → 65₁₀ → 1000001₂

3. Однобайтные кодировки

Особенности: 8 бит (256 символов), совместимы с ASCII.

Популярные кодировки:

КодировкаЯзыкиОсобенности
CP1251Русский, украинскийWindows
KOI8-RРусскийUNIX/Linux
ISO-8859Европейские языкиМеждународный стандарт

Проблема: Несовместимость между кодировками (кракозябры).

4. Стандарт Unicode

Цель: Единая кодировка для всех языков (149 186 символов в версии 15.1).

Основные диапазоны:

ДиапазонСимволы
U+0000-U+007FASCII
U+0400-U+04FFКириллица
U+4E00-U+9FFFКитайские иероглифы
U+1F600-U+1F64FEmoji 😊

5. Кодировка UTF-8

Принцип: Переменная длина кода (1-4 байта).

Правила кодирования:

ДиапазонДлинаШаблон
U+0000-U+007F1 байт0xxxxxxx
U+0080-U+07FF2 байта110xxxxx 10xxxxxx
U+0800-U+FFFF3 байта1110xxxx 10xxxxxx 10xxxxxx
U+10000-U+10FFFF4 байта11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

Примеры:

  • 'A' (U+0041) → 01000001
  • 'Б' (U+0411) → 11010000 10010001
  • '😊' (U+1F60A) → 11110000 10011111 10011000 10001010

Схема декодирования:

graph TD
A[Начало] --> B{Первый байт}
B -->|0xxxxxxx| C[1 байт: ASCII]
B -->|110xxxxx| D[Читать ещё 1 байт]
B -->|1110xxxx| E[Читать ещё 2 байта]
B -->|11110xxx| F[Читать ещё 3 байта]
D --> G[Собрать символ]
E --> G
F --> G
C --> G
G --> H[Декодированный символ]

6. Расчёт информационного объёма

Формула: \( V = N \times L \)

Где \( V \) — объём (байты), \( N \) — число символов, \( L \) — средняя длина кода.

Примеры:

ТекстКодировкаРасчётОбъём
«Hello»ASCII5 × 1 байт5 байт
«Привет»UTF-86 × 2 байта12 байт
«Hello😊»UTF-85×1 + 1×49 байт