Исключение XML из-за ведущего символа юникода в ответе REST API

Когда я пытаюсь разобрать ответ от определенного REST API, я получаю XmlException , в котором говорится: «Данные на корневом уровне недействительны. . Строка 1, позиция 1. " Глядя на XML, он выглядит нормально, но затем, изучив первый символ, я вижу, что на самом деле это неразрывный пробел нулевой ширины (код символа 65279 или 0xFEFF).

Есть ли у этого персонажа какая-то веская причина? Может быть, я должен установить другую кодировку, когда сделаю свой запрос? В настоящее время я использую Encoding.UTF8 .

Я думал просто удалить символ из строки или попросить разработчика REST API исправить это, но прежде чем я сделаю что-либо из этого вещи, которые я хотел проверить, есть ли веская причина для этого персонажа там. Я не эксперт по юникоду. Есть ли что-то другое, что я должен сделать?

Edit: Я подозревал, что это может быть что-то вроде этого (BOM). Итак, возникает вопрос, должен ли я иметь дело с этим персонажем специально? Я пробовал загрузить XML двумя способами, и оба выдают одно и то же исключение:

public static User GetUser()
{
    WebClient req = new WebClient();
    req.Encoding = Encoding.UTF8;
    string response = req.DownloadString(url);

    XmlSerializer ser = new XmlSerializer(typeof(User));
    User user = ser.Deserialize(new StringReader(response)) as User;

    XElement xUser = XElement.Parse(response);

    ...

    return user;
}

0
задан gilly3 3 June 2011 в 19:37
поделиться