Что означает код errno 42 (EILSEQ) в Windows?

 
Также может означать:
КонстантаТипОС
KERN_SEMAPHORE_DESTROYEDКод возврата ядра macOSmacOS
ippStsI18nGetMessageFailСтатус Intel IPPЛюбая
ENOMSGerrnoLinux
ENOPROTOOPTerrnomacOS
EUNATCHerrnoSolaris
INCONSISTENT_IRPКод BSODWindows
Предыдущий Следующий
EUNATCH EIDRM

EILSEQ

Что означает EILSEQ в Windows UCRT

EILSEQ: Недопустимая последовательность байтов. Сохраняйте исходные байты и активные locale/encoding rules: замена входа Unicode-строкой после неудачного преобразования уничтожает доказательство неправильной последовательности.

Диагностика

Сохраните исходные bytes в шестнадцатеричном виде, выбранную locale/кодовая страница и точную функцию преобразования.

  • Найдите первый недопустимый byte offset и проверьте границы multibyte sequence, не заменяя данные символом replacement до диагностики.
  • Сравните поведение на минимальном фрагменте входа с явно заданной кодировкой, чтобы исключить зависимость от process locale.

Особенности Windows

В UCRT EILSEQ может появляться при преобразовании multibyte/wide-character данных, зависящем от текущей locale/кодовая страница. Сохраните входные bytes, активную locale и используемую CRT-функцию. Если данные проходят через Win32 MultiByteToWideChar, дополнительно сохраните GetLastError(): это отдельный error channel и он точнее показывает причину Win32 conversion.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.