Убрать метку порядка байтов из строки в C #

Я читал похожие посты по этому вопросу, и они не отвечают на мой вопрос.

В C # у меня есть строка, которую я получаю из WebClient.DownloadString. Я попытался установить client.Encoding в новое UTF8Encoding (false), но это не имело никакого значения - я все равно получаю метку порядка байтов для UTF-8 в начале строки результата. Мне нужно удалить это (чтобы проанализировать полученный XML с LINQ), и хочу сделать это в памяти.

Итак, у меня есть строка, которая начинается с \ x00EF \ x00BB \ x00BF, и я хочу удалить ее, если она существует. Щас пользуюсь

if (xml.StartsWith(ByteOrderMarkUtf8))
{
    xml = xml.Remove(0, ByteOrderMarkUtf8.Length);
}

но это просто неправильно. Я пробовал все виды кода с потоками, GetBytes и кодировками, и ничего не работает. Может ли кто-нибудь предоставить «правильный» алгоритм для удаления спецификации из строки?

Спасибо!

Ответы на вопрос(11)

Ваш ответ на вопрос