Я искал много мест для ответа, но не смог его найти.C#, записывающее слово «ISO-8859-1» в верхнем регистре
Я использую XmlSerializer для генерации XML, и мне это нужно в кодировке ISO-8859-1. Мне удалось сделать это таким образом:
var encoding = Encoding.GetEncoding("ISO-8859-1");
using (StreamWriter writer = new StreamWriter(outfile, appendMode, encoding))
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
serializer.Serialize(writer, DTE, ns);
writer.Close();
}
XML-это хорошо, но система, в которой мне нужно отправить XML в чувствителен к регистру в кодирующего слова, поэтому он просто принимает мой файл, он это говорит, кодирование = «ISO-8859-1» и не говорит «iso-8859-1».
Что я могу сделать? Заранее спасибо.
Помимо всего прочего, вы уведомили другой конец, что они своего рода сломана? Из спецификации XML: «XML-процессоры должны соответствовать именам символов символов без учета регистра» –
Возможно, вам придется фильтровать выходные данные сериализатора – ikegami
Похоже, что в сериализаторе XML используется «Encoding.WebName». Вы можете написать реализацию «Encoding», которая делегирует все методы реальному, но поставляет свою собственную «WebName» ... –