Когда я пытаюсь разобрать ответ от определенного 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;
}