Я читал подобные сообщения по этому вопросу, и они не отвечают на мой вопрос.
В С# у меня есть строка, которую я получаю из WebClient.DownloadString. Я попытался настроить client.Encoding на новый UTF8Encoding (false), но это не имело никакого значения - я все еще заканчиваю знаком байтового порядка для UTF-8 в начале строки результата. Мне нужно удалить это (проанализировать полученный XML с помощью LINQ) и сделать это в памяти.
Итак, у меня есть строка, начинающаяся с \x00EF\x00BB\x00BF, и я хочу удалить ее, если она существует. Прямо сейчас я использую
if (xml.StartsWith(ByteOrderMarkUtf8))
{
xml = xml.Remove(0, ByteOrderMarkUtf8.Length);
}
но это просто неправильно. Я пробовал все виды кода с потоками, GetBytes и кодировками, и ничего не работает. Может ли кто-нибудь предоставить "правильный" алгоритм для выделения спецификации из строки?
Спасибо!