Статья Автор: Деникина Н.В., Деникин А.В.

Кодирование текста - 3

Кодирование текста

Основные кодировки

ASCII, Windows-1251, UTF-8, UTF-16 — чем отличаются и какую когда используют

Зачем нужны разные кодировки

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 байта. 
Печать