Изменение кодировки строки C#

180
24 июля 2018, 15:40

Получаю строку из файла HTML и вывожу в консоль, но кодировка в виде иероглифов. Пытаюсь ее изменить следующим образом:

        var node = doc.DocumentNode.SelectNodes("//div/div/span");
        string str = node[2].InnerText;
        Encoding utf8 = Encoding.UTF8;
        Encoding win1251 = Encoding.GetEncoding(1251);
        byte[] utf8Byte = utf8.GetBytes(str);
        byte[] win1251Byte = Encoding.Convert(utf8, win1251, utf8Byte);
        str = win1251.GetString(win1251Byte);
        Console.WriteLine(str);

Но это не помогает. Где может быть ошибка? Спасибо.

Начальная часть кода страницы:

Для примера, вот что отображается в консоли (Должно быть написано ID объекта):

Такой файл выгружается из программы, файл закинул в облако, вот ссылка

Answer 1

Укажите кодировку при загрузке документа

doc.Load(path, Encoding.UTF8);
Answer 2
  1. Смотрим в отладчике, правильно ли отображается полученная строка.
  2. Возможно у вас в консоли используется DOS кодировка 866, а не 1251. Это можно проверить командой mode в командной строке.
READ ALSO
событие в метод - C#

событие в метод - C#

метод как результат должен возвращать данные из события (например формы WinForms) как упаковать событие в метод?

215
Запуск программы через планировщик

Запуск программы через планировщик

В общем сделал программу и хочу ее повесить на планировщик задач Windows

224
Имперсонализация в C#

Имперсонализация в C#

В общем, мне нужно обратится к сетевому ресурсу под другой учеткой

176
Ограничения generic метода

Ограничения generic метода

Каким образом можно задать ограничения generic методу?

167