2016-05-13 2 views
1

Я пытаюсь сохранить html веб-сайта в строке. На веб-сайте есть международные символы (ę, ś, ć, ...), и они не сохраняются в строке, хотя я установил кодировку UTF-8, которая соответствует кодировке веб-сайтов.WebClient DownloadString UTF-8 не отображает международные символы

Вот мой код:

using (WebClient client = new WebClient()) 
{ 
    client.Encoding = Encoding.UTF8; 
    string htmlCode = client.DownloadString(http://www.filmweb.pl/Mroczne.Widmo); 
} 

При печати «htmlCode» на консоль, международные символы отображаются неправильно, даже если в исходном HTML они отображаются правильно.

Любая помощь приветствуется.

ответ

4

У меня была та же проблема. Кажется, что client.DownloadString не кодирует символы, используя UTF-8. Используя client.DownloadData и кодируя возвращенные данные с помощью Encoding.UTF8.GetString, устраните проблему.

using (WebClient client = new WebClient()) 
{ 
    var htmlData = client.DownloadData("http://www.filmweb.pl/Mroczne.Widmo"); 
    var htmlCode = Encoding.UTF8.GetString(htmlData); 
} 
+0

К сожалению, это все еще не работает для меня. Кажется, что даже простая строка specialChar = "ĉ" тоже не работает, поэтому я подозреваю, что это проблема со строкой? Я не очень разбираюсь в кодировании, но спасибо за ответ, тем не менее --EDIT-- Я думаю, что это мои методы печати, я вернусь к вам, поскольку это может быть правильный ответ, который вы мне дали. – mrybak3

+0

Да, это полностью сработало, спасибо! Я просто уходил с консольного вывода, когда он отображался правильно. Weird. В любом случае, спасибо! – mrybak3

+0

Добро пожаловать, я рад, что вы нашли мой ответ полезным. –