Additional information: 'cp1251' is not a supported encoding name - C#

Узнай цену своей работы

Формулировка задачи:

using System.IO;
using System.Net;
using System.Text;
 
namespace Testparser
{
    class HtmlDownloadHelper
    {
        /// <summary>
        /// Скачать страницу
        /// </summary>
        /// <param name="uri">страница сайта</param>
        /// <returns>исходный код</returns>
        public static string DownloadHtml(string uri)
        {
            var req = (HttpWebRequest)WebRequest.Create(uri);
            var resp = (HttpWebResponse)req.GetResponse();
           
            //if (resp.CharacterSet == "cp1251")
            //    resp.CharacterSet = "windows-1251";
 
            using (var stream = new StreamReader(stream: resp.GetResponseStream(), encoding: Encoding.GetEncoding(resp.CharacterSet)))
            {
                var html = stream.ReadToEnd();
                return html;
            }
        }
    }
}
Есть сайт "http://www.iitrust.ru/region/uc/tarif.php" с него приходит resp.CharacterSet = "cp1251" и вылетает исключение как это грамотно обойти у этого свойства только геттер или как допилить что бы всю возможную запись в чартерсет он воспринимал это же я думаю ни один такой случай

Решение задачи: «Additional information: 'cp1251' is not a supported encoding name»

textual
Листинг программы
using (var resp = req.GetResponse())
{
            var encoding = resp.CharacterSet == "cp1251" ? Encoding.GetEncoding(1251) : Encoding.UTF8;
            using (var stream = new StreamReader(resp.GetResponseStream(), encoding))
            {
                return stream.ReadToEnd();
            }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы