Теория
Кодировка определяет, как байты превращаются в символы. Для кириллицы исторически существовали windows-1251 и KOI8-R, сегодня стандарт — UTF-8, в котором любой символ мира кодируется 1–4 байтами. Открытый не в той кодировке русский текст выглядит как «РїСЂРёРІРµС‚» — «кракозябры».
Детектор определяет кодировку по статистике байтов: у UTF-8 строгая структура последовательностей, у windows-1251 характерные диапазоны. Надёжнее всего метка BOM в начале файла, но встречается не всегда.
Важно: без BOM и контекста детекция не идеальна — короткие строки из латиницы совпадают в нескольких кодировках.
Пример с решением
- Условие. Определите кодировку байтов «Привет», закодированных в UTF-8.
- Формула. UTF-8: кириллица кодируется двумя байтами с префиксами 110xxxxx 10xxxxxx.
- Подстановка. «П» — байты \(D0\,9F\) — соответствует правилу.
- Вычисление. Все пары байтов подчиняются структуре UTF-8 — детектор уверенно указывает UTF-8.
- Ответ. Кодировка UTF-8. Калькулятор с этой строкой покажет UTF-8; текст в windows-1251 он распознает по другим диапазонам байтов.
Главное
- UTF-8 — современный стандарт, 1–4 байта на символ.
- «Кракозябры» — признак неверной кодировки.
- Детекция — по структуре байтов, BOM — самый надёжный признак.