Зачем нужны разные кодировки
ASCII подходит только для английского языка — в ней всего 128 символов. Для русского и других языков придумали расширенные кодировки.
Главное отличие — сколько байт занимает один символ. Именно это спрашивают на ОГЭ.
Четыре кодировки, которые нужно знать
ASCII
1 байт / символ
Английский, цифры, знаки препинания. 128 символов.
Windows-1251
1 байт / символ
Русский + английский. 256 символов. Стандарт для старых русских файлов.
UTF-8
1–4 байта / символ
Все языки мира. Английские — 1 байт, русские — 2 байта.
UTF-16
2 байта / символ
Все языки мира. Фиксированные 2 байта на большинство символов.
Сводная таблица
| Кодировка |
Байт на символ |
Бит на символ |
| ASCII |
1 |
8 |
| Windows-1251 |
1 |
8 |
| UTF-8, англ. |
1 |
8 |
| UTF-8, рус. |
2 |
16 |
| UTF-16 |
2 |
16 |
| UTF-32 |
4 |
32 |
Частая ловушка: если в задаче написано «Unicode, 16 бит на символ» — это значит 2 байта на символ (16 ÷ 8 = 2). Не путай биты и байты!
UTF-8 — хитрая кодировка: английские буквы занимают 1 байт, а русские — 2 байта.