CP866 — кодировка эпохи DOS
CP866 (OEM-866, DOS-кириллица) — однобайтовая кодировка русского языка, разработанная IBM и Microsoft для MS-DOS в 1992 году. До сих пор используется в legacy-системах: 1С 7.7, FoxPro 2.x, бухгалтерских программах эпохи 1990-х (Парус-DOS, Турбо-Бухгалтер), а также в командной строке Windows cmd.exe. Когда современный Windows-1251-текст попадает в DOS-программу, появляются «кракозябры» — нечитаемые символы. Калькулятор выполняет точную перекодировку байт-в-байт по таблице Microsoft.
Когда нужна перекодировка
Три типичных сценария: 1) Импорт DBF-файлов из 1С 7.7 или FoxPro в современную систему — текст из CP866 нужно перевести в UTF-8 или CP1251. 2) Создание bat-файлов с русским текстом для cmd.exe — сохранять в CP866. 3) Чтение архивных документов от госорганов 1990-х (отчёты, базы) — из CP866. Современные офисные программы (Word, Excel, 1С 8.x) поддерживают CP866 через явный выбор при открытии/сохранении. Для пакетной перекодировки используйте iconv -f WINDOWS-1251 -t IBM866 (Linux/WSL).
Code Page 866 was designed for MS-DOS Russian localization, providing 8-bit Cyrillic encoding with full pseudographic characters for terminal-mode user interfaces.— Microsoft Code Page 866 specification (1992)
Сравнение кодировок русского текста
Для других конверсий используйте UTF-8 → CP1251, CP1251 → UTF-8, или универсальный декодер кириллицы.
- Microsoft Code Page 866 (OEM-866) Specification. Microsoft. docs.microsoft.com. 1992.
- Microsoft Code Page 1251 (Windows-1251) Specification. Microsoft. docs.microsoft.com. 1995.
- ГОСТ 19768-93 «Информационная технология. 8-битные одноалфавитные кодированные наборы символов». Госстандарт. docs.cntd.ru. 1993.
- IETF RFC 1489 — Registration of a Cyrillic Character Set. IETF. rfc-editor.org. 1993. ↗ ссылка
- Unicode Mappings for CP866. Unicode Consortium. unicode.org. 2024. ↗ ссылка
