.NET 4.x ASCII или Windows-1251 - C#

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

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

Здравствуйте Пытаюсь написать парсер, всё вроде понятно кроме одного. Когда пытаюсь спарсить порт то возврашает непонятную строку " & # 51 ; & # 49 ; & # 50 ; & # 56 ; "

(только без пробелов а то браузер сам переводит строку в "3128")

в онлаин декрипторах понял что это кодировка "windows-1251" но после раскодирования получается таже строка, я так понял что это как то связанно с обнулением старшего баита н.т.д. или же это ASCII таблица. Вопрос: Как сделать правильно?
Листинг программы
  1. string url = "http://proxy*******************";
  2. HtmlWeb web = new HtmlWeb();
  3. HtmlAgilityPack.HtmlDocument doc = web.Load(url);
  4.  
  5. string proxyIP = doc.DocumentNode.SelectNodes("//td[@class='plbc_bloc_proxy_td_ip']")[0].InnerText;
  6. string Ip = proxyIP.Substring(30);
  7. Ip = Ip.Substring(0, Ip.Length - 3);
  8. byte[] data = Convert.FromBase64String(Ip);
  9. Ip = Encoding.UTF8.GetString(data);
  10. MessageBox.Show(Ip);
  11.  
  12. var proxyPort = doc.DocumentNode.SelectNodes("//td[@class='plbc_bloc_proxy_td_port']")[0].GetType();
  13. MessageBox.Show(proxyPort.ToString());
  14. byte[] byteUTF8;
  15. byte[] byteUNICODE;
  16. string strUnicode = String.Empty;
  17. byteUTF8 = Encoding.UTF8.GetBytes(doc.DocumentNode.SelectNodes("//td[@class='plbc_bloc_proxy_td_port']")[0].InnerText);
  18. byteUNICODE = Encoding.Convert(Encoding.UTF8, Encoding.Unicode, byteUTF8);
  19. strUnicode = Encoding.Unicode.GetString(byteUNICODE);
  20.  
  21. MessageBox.Show(strUnicode);

Решение задачи: «.NET 4.x ASCII или Windows-1251»

textual
Листинг программы
  1.             string proxyPort = doc.DocumentNode.SelectNodes("//td[@class='plbc_bloc_proxy_td_port']")[0].InnerText;
  2.  
  3.  
  4.             string specSymbols = ";#&";
  5.  
  6.             proxyPort = Regex.Replace(proxyPort, string.Format(@"[{0}]", specSymbols), "");
  7.  
  8.             var str = Split(proxyPort, 2).ToArray();
  9.  
  10.             string portNumber = String.Empty;
  11.             for (int i = 0; i <= str.Length - 1; i++)
  12.             {
  13.                 char port = Convert.ToChar(Convert.ToInt16(str[i]));
  14.                 portNumber = portNumber + port.ToString();
  15.             }

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


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

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

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы