0 / 0 / 2
Регистрация: 17.02.2016
Сообщений: 163
1

Как сохранить html страницу в Windows-1251 кодировке?

18.04.2016, 19:21. Показов 3713. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
скачиваю html страницу.
C#
1
var sait = new WebClient().DownloadString(zapros);
произвожу удаление, добавление, смену нужных кусков текста (по средствам регулярных выражений).
создаю .html файл и записываю туда результат.
проблема в том, что русские буквы сохраняются или крякозябрами или знаками вопроса.
проблема в кодировке.
весь инет на utf-8 кодировке, а надо сохранить в Windows-1251 кодировке.
пробовал так:
C#
1
2
3
var sw = new StreamWriter("html.html", false, Encoding.GetEncoding(1251));
sw.Write(sait);
sw.Close();
и true, и false
и Encoding.ANCII и так false, Encoding.UTF8
не помогает. что посоветуете?

P.S.
в самом html файле Windows-1251 прописываю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2016, 19:21
Ответы с готовыми решениями:

Как сохранить html-страницу в кодировке ANSI (сохраняет только в UTF-8)?
Добрый день! Нужно сохранить страницу в файл в кодировке ANSI. Если открыть страницу в...

Как записать строку в кодировке windows-1251 в файл
Добрый день, перечитал почти весь форум но решения проблемы не нашел. Прошу помочь специолистов....

не читает файлы в кодировке windows-1251
как исправить pascal, чтоб нормально показывал русскоязычные шрифты? используется DDOSBox 0.74...

Вывод текста в кодировке Win-1251 из bat-файла, текст которого в кодировке OEM-866
примем за аксиому утверждение: "bat-скрипт следует создавать в кодировке DOS (OEM-866)" ...пусть...

6
75 / 80 / 51
Регистрация: 22.03.2013
Сообщений: 258
18.04.2016, 19:54 2
Лучший ответ Сообщение было отмечено Kuk как решение

Решение

Сделал так:
C#
1
2
3
4
5
6
7
8
        public static void GetStringHtml(string url,string fullnamelocation)
        {
            WebClient webClient = new WebClient();
            webClient.Encoding = Encoding.UTF8;
            StreamWriter sw = new StreamWriter(fullnamelocation, false,Encoding.UTF8);
            sw.WriteLine(webClient.DownloadString(url));
            sw.Close();
        }
Вызов метода:
C#
1
GetStringHtml(@"https://www.cyberforum.ru", @"C:\1.txt");
Просто не скармливай исходный код в переменную string а просто сразу запиши его в текстовый файл

Добавлено через 11 минут
или так:
C#
1
2
3
4
5
            WebClient webClient = new WebClient();
            webClient.Encoding = Encoding.Default;
            StreamWriter sw = new StreamWriter(fullnamelocation, false,Encoding.Default);
            sw.WriteLine(webClient.DownloadString(url));
            sw.Close();
1
0 / 0 / 2
Регистрация: 17.02.2016
Сообщений: 163
18.04.2016, 19:55  [ТС] 3
Цитата Сообщение от ProgerHack Посмотреть сообщение
Просто не скармливай исходный код в переменную string а просто сразу запиши его в текстовый файл
а как мне тогда обработать исходный код (удалить, заменить, добавить текст), если его не загружать в string?
0
75 / 80 / 51
Регистрация: 22.03.2013
Сообщений: 258
18.04.2016, 19:57 4
C#
1
2
3
4
5
6
            WebClient webClient = new WebClient();
            webClient.Encoding = Encoding.Default;
            string sourceCode = webClient.DownloadString(url);
            StreamWriter sw = new StreamWriter(fullnamelocation, false,Encoding.Default);
            sw.WriteLine(sourceCode);
            sw.Close();
1
0 / 0 / 2
Регистрация: 17.02.2016
Сообщений: 163
18.04.2016, 20:23  [ТС] 5
сделал так:
C#
1
2
3
4
5
6
7
8
9
10
11
            string zapros = textBox1.Text;
            WebClient webClient = new WebClient();
            webClient.Encoding = Encoding.UTF8;
            string sourceCode = webClient.DownloadString(zapros);
            var kodstranici = Regex.Matches(sourceCode, @"(?<=charset=).*(?=" + kv + ")");
            foreach (Match m in kodstranici)
            kod = m.Value;
            string sait2 = Regex.Replace(sourceCode, kod, win);
            StreamWriter sw = new StreamWriter("html.html", false, Encoding.UTF8);
            sw.WriteLine(sait2);
            sw.Close();
регуляркой ищу кодировку страницы и меняю на Windows-1251.
но почему-то, код и регулярку не выполняет и страница сохраняется в utf-8 (смотрю в notepad++).
0
75 / 80 / 51
Регистрация: 22.03.2013
Сообщений: 258
18.04.2016, 20:45 6
Лучший ответ Сообщение было отмечено Kuk как решение

Решение

Немножко не понял...он должен сохранить исходный код страницы,потом изменить кодировку html т.е в этом самом исходном коде а потом сохранить его?
ну если так то вот
C#
1
2
3
4
5
6
7
8
   
         WebClient webClient = new WebClient();
            webClient.Encoding = Encoding.Default;
            string sourceCode = webClient.DownloadString(url);
            StreamWriter sw = new StreamWriter(fullnamelocation, false,Encoding.Default);
            string x = Regex.Replace(sourceCode, "(?<=charset=)(.*)(?=")", "Windows-1251");
            sw.WriteLine(x);
            sw.Close();
1
0 / 0 / 2
Регистрация: 17.02.2016
Сообщений: 163
18.04.2016, 22:29  [ТС] 7
Цитата Сообщение от ProgerHack Посмотреть сообщение
Немножко не понял...он должен сохранить исходный код страницы,потом изменить кодировку html т.е в этом самом исходном коде а потом сохранить его?
что-то опять у меня сломалось.
он должен изменить кодировку исходного кода на ANCI и в исходном коде в строке
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
поменять на windows-1251.
а русский текст (теоретически) не должен изменяться на крякозябры.

Добавлено через 5 минут
кодировку не правильно прописывал )))
надо Windows - 1251, а не windows-1251.
0
18.04.2016, 22:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2016, 22:29
Помогаю со студенческими работами здесь

Как сохранить страницу html из webbrowser
Получение текущего HTML кода страницы из WebBrowser помогите сохранить html код в текстовый...

Как сохранить html-страницу в текстовый файл?
Привет всем! Как сохранить html-страницу в текстовый файл, чтобы потом уже анализировать...

Как сохранить man-страницу в формате HTML?
Хотел записать в телефон некоторые страницы документации &quot;man&quot;, что бы можно было почитать в...

Как сохранить html страницу средствами java
Подскажите как реализовать задачу Есть пусть к html страницы. Запускаем Java и автоматически...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru