C # - десериализация XML-строки, в XML-документе произошла ошибка (1,2) - PullRequest
4 голосов
/ 22 апреля 2011

Я пытаюсь десериализовать строку XML в C #, используя следующую команду:

XmlSerializer serializer = new XmlSerializer(typeof(Application));

App = (Application)serializer.Deserialize(xmlString);

Все это хорошо работает, когда XML довольно печатается, но когда у меня есть весь XML в одной строке, десериализация не удается сошибка

Произошла ошибка в документе XML (1, 2).Имя не может начинаться с «.»символ, шестнадцатеричное значение 0x00.Строка 1, позиция 2. "

Я проверил, что xml действителен как таковой.

Кто-нибудь знает, что можно сделать, чтобы преодолеть эту проблему?

1 Ответ

9 голосов
/ 22 апреля 2011

Скорее всего, вы загружаете файл UTF-16 как UTF-8, и в результате каждый второй символ равен 0.

Если это правда - это может произойти, если вы сохранили исходный XML без спецификации (метка порядка байтов) или явно использовали неправильную кодировку при открытии файла ...

...