Определение неправильной кодировки HttpWebRequest

#c# #character-encoding #httpwebrequest

#c# #кодировка символов #httpwebrequest

Вопрос:

Я пытаюсь прочитать текст HTML-страницы с сайта — http://konungstvo.ru / , который имеет кодировку utf-8.

 var request = _requestCreator.Create(uri);
try
{
    using (var response = request.GetResponse())
    {
        if (response.ContentType.Contains("text/html"))
        {
            using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
            {
                string responseText = reader.ReadToEnd();
            }
 

Но я получаю u001f�b1Vu0002Xu0002��X�nu001b� и так далее, хотя код работает и с другими сайтами.

Комментарии:

1. Вы забыли вставить фактическую кодировку, которую вы используете, в этот фрагмент кода: ..., Encoding.))

2. Извините, я пытался явно указать кодировку, но это не помогло.

Ответ №1:

Я думаю, вам нужна кодировка символов для латинского / кириллического алфавита, которая может соответствовать стандарту ISO / IEC 8859-5 или, например, Windows-1251:

 var encoding = Encoding.GetEncoding("iso-8859-5");
using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))
 

Использование этого при чтении потока ответов дает некоторый кириллический контент, который, к сожалению, также не является правильным выводом: https://dotnetfiddle.net/x8jnN8 . Итак, извините, но это не реальный ответ на вашу проблему :/

Комментарии:

1. Нет, это неправильный текст. Должна быть строка с html страницы.