C # Загрузка веб-сайта в строку с использованием C # WebClient или HttpWebRequest

Я пытаюсь загрузить содержимое веб-сайта. Однако для определенной веб-страницы возвращаемая строка содержит беспорядочные данные, содержащие много символов �.

Вот код, который я использовал изначально.

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Method = "GET";
req.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))";
string source;
using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
{
    source = reader.ReadToEnd();
}
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(source);

Я также пробовал альтернативные реализации с WebClient, но все тот же результат:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
using (WebClient client = new WebClient())
using (var read = client.OpenRead(url))
{
    doc.Load(read, true);
}

Судя по поиску, я предполагаю, что это может быть проблема с кодировкой, поэтому я попробовал оба решения, опубликованные ниже, но все еще не могу заставить это работать.

Оскорбительный сайт, который я не могу загрузить, - это статья United_States в английской версии WikiPedia (en. wikipedia. org / wiki / United_States). Хотя я пробовал ряд других wikipedia статьи и не видели эту проблему.

6
задан Nick Collier 22 September 2011 в 16:19
поделиться