Определение кодировки в строке и преобразование ее в 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); // Получение кода страницы
            }

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


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

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

10   голосов , оценка 3.9 из 5
Похожие ответы