.NET 4.x Кракозябры при парсинге страницы - C#
Формулировка задачи:
Получаю код страницы. С помощью регулярок извлекаю значение тэга заголовка страницы(<title>). Но в treeView выдаёт пустые строки. Посмотрев, что там не так, я увидел, что вместо русских букв получаются кракозябры. Кодировка получаемой страницы - UTF8.
Код прилагается:
Сам пытался исправить, но ничего не получается. Помогите, пожалуйста.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _2
- {
- public partial class Form1 : Form
- {
- private int a = 7713;
- public Form1()
- {
- InitializeComponent();
- }
- int number = 1;
- private void button1_Click(object sender, EventArgs e)
- {
- while (number <= 4)
- {
- string str = getResponse(@"https://stories.everypony.ru/story/" + number); Encoding.GetEncoding(1251);
- richTextBox1.Text = str;
- str = Regex.Match(str, @">([А-Я][а-я]*.[а-я]*.)([—])").ToString();
- str = Regex.Match(str, @"([А-Я][а-я]*.[а-я]*)").ToString();
- treeView1.Nodes.Add(str);
- number = number + 1;
- }
- }
- string getResponse(string uri)
- {
- try
- {
- StringBuilder sb = new StringBuilder();
- byte[] buf = new byte[8192];
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
- HttpWebResponse response = (HttpWebResponse)request.GetResponse();
- Stream resStream = response.GetResponseStream();
- int count = 0;
- do
- {
- count = resStream.Read(buf, 0, buf.Length);
- if (count != 0)
- {
- sb.Append(Encoding.Default.GetString(buf, 0, count));
- }
- }
- while (count > 0);
- return sb.ToString();
- }
- catch (WebException ex)
- {
- HttpWebResponse webResponse = (HttpWebResponse)ex.Response;
- if (webResponse.StatusCode == HttpStatusCode.NotFound)
- {
- return "404";
- }
- else
- {
- throw;
- }
- }
- }
- }
- }
Решение задачи: «.NET 4.x Кракозябры при парсинге страницы»
textual
Листинг программы
- string getResponse(string uri)
- {
- WebClient client = new WebClient();
- return client.DownloadString(uri);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д