Что означает код NTSTATUS 0xC0150021 (STATUS_XML_ENCODING_MISMATCH)?

 
Предыдущий Следующий
STATUS_ADVANCED_INSTALLER_FAILED STATUS_SXS_MANIFEST_TOO_BIG

STATUS_XML_ENCODING_MISMATCH

Объявленная кодировка символов не соответствует фактическим байтам

XML-процессоры используют метку порядка байтов, начальный шаблон байтов и декларацию кодировки, чтобы определить преобразование байтов в символы. Файл, сохранённый в UTF-8, но объявляющий UTF-16, либо сохранённый в устаревшей кодовой странице при декларации UTF-8, может завершиться ошибкой ещё до проверки схемы side-by-side.

Исправляйте источник сериализации, а не только видимый текст. Повторное сохранение в редакторе может добавить или удалить BOM, нормализовать символы или изменить кодировку, оставив декларацию прежней.

Что проверить

  • Проверьте первые необработанные байты, BOM и точную декларацию XML.
  • Проверьте файл XML-парсером, используя те же байты, которые получает Windows.
  • Проверьте этапы сборки, упаковки, подписания и передачи на непреднамеренное перекодирование.
  • После исправления кодировки повторно проверьте схему манифеста и хэши, поскольку байтовое содержимое изменилось.

Ссылки


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