Проблема в том, что базовый поток (в данном случае объект xmlDoc
) использует UTF-8, который является кодировкой по умолчанию в .NET.
Из документации MSDN свойства Кодировка из XmlWriterSettings:
Свойство Encoding применяется только к экземплярам XmlWriter, которые создаются либо с указанным потоком, либо с указанным именем файла. Если экземпляр XmlWriter создается с указанным TextWriter, свойство Encoding переопределяется кодировкой базового TextWriter. Например, если для этого свойства задано значение Unicode (UTF-16) для определенного XmlWriter, но базовым устройством записи является StreamWriter (производный от TextWriter) с его кодировкой UTF-8, выходные данные будут закодированы в UTF-8 .
Чтобы решить эту проблему, вам нужно создать XmlWriter
с потоком, закодированным в Latin-1. Я не думаю, что вы можете использовать XmlDocument
для этого.