Кодировки текста: ASCII, Windows-1251 и Unicode
💻 Информатика · 9 класс
Что такое кодировка текста
Кодировка — это таблица, которая каждому символу ставит в соответствие числовой код. Компьютер хранит и обрабатывает только числа, поэтому любая буква, цифра или знак препинания перед записью в память превращается в число, а при выводе на экран — обратно в символ. Чтобы текст, набранный на одном компьютере, правильно читался на другом, оба должны использовать одинаковую таблицу кодировки.
Кодировка ASCII
Историческая основа всех кодировок — таблица ASCII (читается «аски»). В ней для кода символа отводится 7 битов, поэтому она содержит 128 символов с кодами от 0 до 127. В таблицу входят латинские буквы, цифры, знаки препинания и управляющие символы (например, перевод строки). Важная закономерность: символы идут по порядку. Код буквы A равен 65, B — 66, и так далее; код буквы a равен 97. Цифра 0 имеет код 48. Это позволяет легко находить код соседней буквы прибавлением единицы.
Однобайтовые кодировки русского текста
В одном байте 8 битов, значит он хранит 256 разных кодов (от 0 до 255). Первая половина (0–127) совпадает с ASCII, а вторую половину (128–255) разные стандарты заполняли по-своему. Для русских букв применялись кодировки Windows-1251, KOI8-R и другие. Если текст набрали в одной кодировке, а открыли в другой, вместо русских букв появляются непонятные знаки — «кракозябры».
| Кодировка | Размер символа | Что кодирует |
|---|---|---|
| ASCII | 7 битов | латиница, цифры, знаки |
| Windows-1251 | 1 байт | латиница и кириллица |
| Unicode (UTF-8) | 1–4 байта | почти все письменности мира |
Универсальный стандарт Юникод
Чтобы покончить с путаницей кодировок, создали Unicode (Юникод) — единую таблицу для символов всех языков. Каждому символу присвоен свой номер. Самый распространённый способ записи Юникода — UTF-8: латинские символы занимают в нём 1 байт, а кириллица — 2 байта.
Подсчёт объёма текста
Зная кодировку, легко вычислить размер текста. В однобайтовой кодировке каждый символ — это 1 байт.
Пример: Слово «информатика» содержит 11 букв. В кодировке Windows-1251 каждая буква занимает 1 байт, значит размер слова = 11 байт. В кодировке UTF-8 каждая русская буква занимает 2 байта, значит 11 * 2 = 22 байта.Частые ошибки. Не путайте бит и байт: символ в однобайтовой кодировке — это именно 1 байт, а не 1 бит. Пробел — это тоже символ, его нужно учитывать при подсчёте. В UTF-8 русские и латинские буквы занимают разное число байтов.
Кратко о главном
- Кодировка — таблица соответствия символов и числовых кодов.
- ASCII кодирует 128 символов 7 битами; в неё входят латиница, цифры, знаки.
- Однобайтовые кодировки (например, Windows-1251) добавляют кириллицу, но несовместимы между собой.
- Юникод — единая таблица для всех языков; в UTF-8 латиница занимает 1 байт, кириллица — 2.
- Размер текста = число символов, умноженное на размер одного символа.