Зачем нужен декодер кириллицы
Кракозябры в русском тексте — следствие неверной кодировки. Файл, созданный в Windows-1251, открытый как UTF-8, превращается в «Ïðèâåò» вместо «Привет». Всего за 30 лет (1976–2006) в России использовалось не менее 6 разных кодировок русского языка: KOI8-R, CP866, Windows-1251, ISO-8859-5, MacOS Cyrillic, UTF-8. С 2010-х годов стандарт — UTF-8, но архивы, legacy-системы и некоторые корпоративные серверы до сих пор присылают данные в старых кодировках. Этот декодер автоматически определяет исходную кодировку и переводит в UTF-8.
Метод авто-определения
Алгоритм основан на статистическом анализе частот байтов и пар байтов (bigrams) русского языка:
Statistical encoding detection achieves 95%+ accuracy on text samples larger than 1 KB by leveraging language-specific byte frequency distributions and bigram patterns.— Mozilla Universal Charset Detector (UDE)
6 кодировок русского языка
Для специфических случаев: письма с iPhone (MIME + Quoted-Printable), DOS-кодировка (CP866 для 1С 7.7), общий декодер кракозябр.
- RFC 3629 — UTF-8, a transformation format of ISO 10646. IETF. rfc-editor.org. 2003. ↗ ссылка
- RFC 1489 — Registration of a Cyrillic Character Set (KOI8-R). IETF. rfc-editor.org. 1993. ↗ ссылка
- ГОСТ 19768-93 «8-битные одноалфавитные кодированные наборы символов». Госстандарт. docs.cntd.ru. 1993.
- Mozilla Universal Charset Detector (UDE). Mozilla. mozilla.github.io. 2024.
- W3Techs — Encoding Statistics 2024. W3Techs. w3techs.com. 2024. ↗ ссылка
