Кодировка, кодовая страница

Коды выбора кодировки, порядок байтов в UTF-16 и UTF-32, маркер BOM и схема записи UTF-8.

Выбор кодировки

Функции выбора кодировки используют числовые коды: NoChange, ANSI0, OEMCP1, MACCP2, THREAD_ACP3, UTF765000, UTF865001. Для кириллицы предусмотрены коды 866 (DOS), 1251 (Windows), 28595 (ISO), 20866 (KOI8-R) и 21866 (KOI8-RU). Кодировка определяет соответствие между байтами потока и символами текста.

Порядок байтов и UTF-8

В UTF-16 старший байт записывается либо перед младшим (little-endian), либо после него (big-endian). Аналогично существуют варианты UTF-32LE и UTF-32BE. Сигнатура U+FEFF в начале файла различает эти варианты: UTF-16LE даёт FF FE, UTF-16BE даёт FE FF. UTF-8 кодирует символы по схеме: 0x00000000–0x0000007F занимает один байт, 0x00000080–0x000007FF два байта, 0x00000800–0x0000FFFF три байта. Символ U+0000 допустим в Юникоде, поэтому BOM не позволяет надёжно отличить UTF-16LE от UTF-32LE.