Определение кодировки в строке и преобразование ее в UTF-8 - C#

Узнай цену своей работы

Формулировка задачи:

С помощью этого куска кода я получаю html страницы и записываю как обычную строку в response. Внутри этого кода я регулярными выражениями выделяю нужную мне информацию, написанную как-раз на русском языке.
Листинг программы
  1. public void DoIt()
  2. {
  3. string response = "";
  4. string uri = "http://rutor.org/"; // Ссылка на начальную страницу
  5. using (WebClient webClient = new WebClient())
  6. {
  7. response = webClient.DownloadString(uri); // Получение кода страницы
  8. }
  9. }
Проблема в том, что получаемая в итоге информация выглядит так:

Название: Незримая РІРѕР№РЅР° Автор: Р˜РіРѕСЂСЊ Прокопенко Р˜Р·РґР°С‚РµР»СЊСЃС‚РІРѕ: Р*РєСЃРјРѕ Год: 2016 Серия: Военная тайна СЃ Р˜РіРѕСЂРµРј Прокопенко. Коллекция Жанр: <a href="/tag/11/Р˜СЃС‚РѕСЂРёСЏ" target="_blank">Р˜СЃС‚РѕСЂРёСЏ, <a href="/tag/11/Р*асследования" target="_blank">Р*асследования Формат: FB2, RTF Страниц: 512

Пробовал использовать следующий метод, так как различные декодеры/енкодеры показывали, что это кодировка windows-1251:
Листинг программы
  1. private string Win1251ToUTF8(string source)
  2. {
  3. Encoding utf8 = Encoding.GetEncoding("utf-8");
  4. Encoding utf16 = Encoding.GetEncoding("utf-16");
  5. byte[] utf8Bytes = utf16.GetBytes(source);
  6. byte[] utf16Bytes = Encoding.Convert(utf16, utf8, utf8Bytes);
  7. source = utf16.GetString(utf16Bytes);
  8. return source;
  9. }
Но не помогло, лишь усугубило ситуацию.

Решение задачи: «Определение кодировки в строке и преобразование ее в UTF-8»

textual
Листинг программы
  1.             string response = "";
  2.             string uri = "http://rutor.org/"; // Ссылка на начальную страницу
  3.  
  4.             using (WebClient webClient = new WebClient())
  5.             {
  6.                 webClient.Encoding = Encoding.UTF8;
  7.                 response = webClient.DownloadString(uri); // Получение кода страницы
  8.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы