Кодировка текста страницы HTML (WebClient)
Скачиваю страницу HTML через WebClient:
System.Net.WebClient client = new System.Net.WebClient();
string html = client.DownloadString("https://example");
Там, где нужно вывкести русский текст, выводятся непонятные символы. Я понял, что проблема с кодировкой, подскажите, как определить кодировку веб-страницы и выводить русский текст?
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Лучше использовать HttpClient, так как WebClient устарел. К тому же HttpClient поддерживает TAP, то есть удобные в использовании async/await. (еще ссылка про асинхронность)
Написал пару примеров на базе консольного приложения:
1) Обычный синхронный
class Program
{
// HttpClient нужно инициализировать один раз на всё время работы приложения.
private static HttpClient client = new HttpClient();
static void Main(string[] args)
{
string html = client.GetStringAsync("https://ya.ru").GetAwaiter().GetResult();
Console.WriteLine(html);
Console.ReadKey();
}
}
2) И с асинхронным Main (по моему мнению, лучше грузить данные асинхронно)
class Program
{
private static HttpClient client = new HttpClient();
static async Task Main(string[] args)
{
string html = await client.GetStringAsync("https://ya.ru");
Console.WriteLine(html);
Console.ReadKey();
}
}
Указанной вами проблемы с кодировками при использовании HttpClient не наблюдаю.