Определение кодировки в строке и преобразование ее в 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); // Получение кода страницы }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д