Вы пишете на консоль. Возможно, ваша консоль неправильно настроена для отображения определенных символов. Убедитесь, что отладка и сохранение результата в промежуточной переменной.
Также сайт, который вы указали в качестве примера, полностью испорчен. Веб-сервер отправляет HTTP-заголовок Content-Type: text/html; charset=iso-8859-1
, а в полученном HTML-файле вы видите <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
, который, конечно же, совершенно некогерентен. Вы не можете ожидать, что HTTP-клиент будет корректно вести себя, если столкнутся с нестандартным сайтом, что вы получаете, это неожиданное поведение.
Пробуйте тестирование на каком-либо веб-сайте, который соблюдает минимум веб-стандартов.
Примечание: WebClient реализует IDisposable, поэтому обязательно заверните его в инструкцию using.
UPDATE:
Чтобы заставить его работать с этим конкретным сайте вы можете попытаться загрузить ответ вручную и указав правильно кодировку:
// You may try different encodings here (for me it worked with iso-8859-1)
var encoding = Encoding.GetEncoding("iso-8859-1");
using (var client = new WebClient())
{
using (var stream = client.OpenRead("http://www.maxima.fm/51Chart/"))
using (var reader = new StreamReader(stream, encoding))
{
var result = reader.ReadToEnd();
Console.WriteLine(result);
}
}
Спасибо за рекомендации 'using', однако мне нужно, чтобы мой код работал на этом конкретном сайте (нет проблемы с кодировкой консоли, которую я проверил), и даже если сайт испорчен, sh отлично работает на всех моих браузерах на всех платформах, пожалуйста, мне нужно решение;) – Luffy
@ Luffy, см. мое обновление. –
он отлично работает: D – Luffy