| Предыдущий | Следующий |
| ENOPROTOOPT | ESTRPIPE |
EILSEQ
Сбойной единицей является закодированная последовательность байтов
EILSEQ не является общей ошибкой обработки текста. Код означает, что уровень преобразования или интерпретации встретил байты, недопустимые для выбранной кодировки либо не преобразуемые при действующей локали и правилах конвертации. Та же последовательность байтов может быть допустима в другой кодировке.
Запишите объявленные исходную и целевую кодировки, смещение байта и ограниченный шестнадцатеричный фрагмент около сбоя. Не «исправляйте» данные молчаливой заменой байтов, если контракт приложения явно не допускает преобразование с потерями: замена может повредить идентификаторы, пути, подписи и сериализованные поля протокола.
Полезные различия
- Отличайте недопустимые данные от усечённой конечной последовательности: потоковым декодерам часто требуется сохранить неполный суффикс до следующего блока.
- Проверяйте выбор локали и кодека при запуске процесса, а не только по внешнему виду входных данных.
- Сохраняйте смещения относительно исходного буфера, чтобы производитель мог точно воспроизвести сбой.
Ссылки
- Apple XNU: определения errno Darwin
- POSIX: ошибки преобразования iconv()
- Справочник системных вызовов Apple: EILSEQ
Нужно найти другой код? Найти другой код состояния или ошибки.