Определение кодировки в строке и преобразование ее в UTF-8 - C#
Формулировка задачи:
С помощью этого куска кода я получаю html страницы и записываю как обычную строку в response. Внутри этого кода я регулярными выражениями выделяю нужную мне информацию, написанную как-раз на русском языке.
Проблема в том, что получаемая в итоге информация выглядит так:
Но не помогло, лишь усугубило ситуацию.
public void DoIt()
{
string response = "";
string uri = "http://rutor.org/"; // Ссылка на начальную страницу
using (WebClient webClient = new WebClient())
{
response = webClient.DownloadString(uri); // Получение кода страницы
}
}Название: Незримая РІРѕР№РЅР° Автор: Р˜РіРѕСЂСЊ Прокопенко Р˜Р·РґР°С‚РµР»СЊСЃС‚РІРѕ: Р*РєСЃРјРѕ Год: 2016 Серия: Военная тайна СЃ Р˜РіРѕСЂРµРј Прокопенко. Коллекция Жанр: <a href="/tag/11/Р˜СЃС‚РѕСЂРёСЏ" target="_blank">Р˜СЃС‚РѕСЂРёСЏ, <a href="/tag/11/Р*асследования" target="_blank">Р*асследования Формат: FB2, RTF Страниц: 512
Пробовал использовать следующий метод, так как различные декодеры/енкодеры показывали, что это кодировка windows-1251:private string Win1251ToUTF8(string source)
{
Encoding utf8 = Encoding.GetEncoding("utf-8");
Encoding utf16 = Encoding.GetEncoding("utf-16");
byte[] utf8Bytes = utf16.GetBytes(source);
byte[] utf16Bytes = Encoding.Convert(utf16, utf8, utf8Bytes);
source = utf16.GetString(utf16Bytes);
return source;
}Решение задачи: «Определение кодировки в строке и преобразование ее в UTF-8»
textual
Листинг программы
string response = "";
string uri = "http://rutor.org/"; // Ссылка на начальную страницу
using (WebClient webClient = new WebClient())
{
webClient.Encoding = Encoding.UTF8;
response = webClient.DownloadString(uri); // Получение кода страницы
}