Текст как последовательность символов
Вся информация в компьютере представлена в двоичном коде – последовательности нулей и единиц. Текстовая информация не исключение. Каждый символ (буква, цифра, знак препинания) кодируется уникальной последовательностью битов.
Процесс преобразования символа в его двоичный код называется кодированием.
Обратный процесс (из двоичного кода в символ) называется декодированием.
Для того чтобы компьютеры могли «понимать» текст, необходимо было создать стандартное соответствие между символами и их числовыми кодами. Это соответствие задается с помощью таблиц кодировки (кодовых страниц).
2. Таблица кодировки ASCII
Одной из первых и самых известных таблиц кодировки является ASCII (American Standard Code for Information Interchange – Американский стандартный код для обмена информацией).
История: Разработан в 1963 году.
Разрядность: Использует 7 бит для кодирования символа.
Количество символов: 2⁷ = 128 символов.
Структура:
0 - 31: Управляющие символы (не для печати). Например: LF (перевод строки), CR (возврат каретки), ESC (escape).
32 - 127: Символы для печати:
32: пробел
48-57: цифры 0-9
65-90: заглавные латинские буквы A-Z
97-122: строчные латинские буквы a-z
Остальное: знаки препинания, математические операции.
Задание: Определите, какое слово закодировано с помощью ASCII-кодов:
72 101 108 108 111
(Ответ: Hello)
Проблема: 128 символов достаточно только для базового английского языка. Для поддержки букв других языков (включая белорусские і, ў, ') и специальных символов 7 бит не хватает.
3. Расширенные 8-битные кодировки (ASCII-совместимые)
Для решения проблемы недостатка символов стали использовать старший бит байта (8-й бит). Это позволило увеличить количество возможных символов до 256 (2⁸ = 256). Диапазон 128-255 стал использоваться для кодирования символов национальных алфавитов.
Было создано множество кодовых страниц (code pages). Для кодирования кириллицы существовали разные конкурирующие стандарты:
КОИ-8: Популярен в сети Интернет в начале её развития.
Windows-1251 (CP1251): Стандартная кодировка для русской и белорусской версий ОС Windows.
ISO-8859-5: Стандарт Международной организации по стандартизации.
Проблема: Если на компьютере установлена одна кодовая страница (например, для английского), а документ был создан с другой (например, Windows-1251 для белорусского), то вместо текста на экране появляются нечитаемые символы — «кракозябры». Это происходит потому, что одно и то же числовое значение в разных таблицах соответствует разным символам.
4. Универсальная кодировка Unicode
Для решения проблемы множественности кодировок и для объединения всех письменностей мира был создан стандарт Unicode (Юникод).
Идея: Присвоить уникальный код каждому символу каждого языка мира, включая исторические алфавиты, математические и технические символы, эмодзи.
Кодовое пространство: Юникод использует не один байт, а целое число для кодирования символа (например, U+XXXX, где X – шестнадцатеричная цифра). Это позволяет закодировать более миллиона символов.
Совместимость: Первые 128 символов Юникода совпадают с ASCII.
Способы представления (кодировки) Unicode в компьютере:
Чтобы efficiently хранить и передавать тексты, коды Юникода преобразуются в последовательности байтов с помощью алгоритмов UTF (Unicode Transformation Format):
UTF-8: Наиболее распространенная кодировка в вебе и UNIX-системах.
Принцип: Использует переменное количество байтов (от 1 до 4) для кодирования одного символа.
Преимущество: Латинские символы (ASCII) кодируются одним байтом, что экономично для английских текстов. Кириллические символы (включая белорусские) кодируются двумя байтами.
UTF-16: Используется в операционных системах Windows, Java.
Принцип: Большинство часто используемых символов кодируются двумя байтами (16 бит). Редкие символы — четырьмя.
UTF-32: Каждый символ кодируется строго четырьмя байтами. Просто, но не экономично.
Важно для Беларуси: Современные ОС, браузеры и текстовые редакторы по умолчанию используют UTF-8 или UTF-16. Это гарантирует, что белорусские тексты (Наш край — Беларусь! Наша мова — беларуская!) будут корректно отображаться на любом устройстве по всему миру, без проблем с «кракозябрами».
5. Практическое задание для закрепления
Закодируйте ваше имя латинскими буквами с помощью таблицы ASCII.
Узнайте, каков шестнадцатеричный код белорусской буквы «ў» в таблице Unicode. (Можно использовать онлайн-конвертеры или функцию «Вставить символ» в текстовом редакторе).
Объясните, почему в современном мире предпочтительнее использовать кодировку UTF-8, а не Windows-1251.
Видео урок по данному уроку от учителя информатики Трашкова Олега Леонидовича