.NET 4.x ASCII или Windows-1251 - C#
Формулировка задачи:
Здравствуйте
Пытаюсь написать парсер, всё вроде понятно кроме одного. Когда пытаюсь спарсить порт то возврашает непонятную строку
" & # 51 ; & # 49 ; & # 50 ; & # 56 ; "
(только без пробелов а то браузер сам переводит строку в "3128")
в онлаин декрипторах понял что это кодировка "windows-1251" но после раскодирования получается таже строка, я так понял что это как то связанно с обнулением старшего баита н.т.д. или же это ASCII таблица. Вопрос: Как сделать правильно?string url = "http://proxy*******************"; HtmlWeb web = new HtmlWeb(); HtmlAgilityPack.HtmlDocument doc = web.Load(url); string proxyIP = doc.DocumentNode.SelectNodes("//td[@class='plbc_bloc_proxy_td_ip']")[0].InnerText; string Ip = proxyIP.Substring(30); Ip = Ip.Substring(0, Ip.Length - 3); byte[] data = Convert.FromBase64String(Ip); Ip = Encoding.UTF8.GetString(data); MessageBox.Show(Ip); var proxyPort = doc.DocumentNode.SelectNodes("//td[@class='plbc_bloc_proxy_td_port']")[0].GetType(); MessageBox.Show(proxyPort.ToString()); byte[] byteUTF8; byte[] byteUNICODE; string strUnicode = String.Empty; byteUTF8 = Encoding.UTF8.GetBytes(doc.DocumentNode.SelectNodes("//td[@class='plbc_bloc_proxy_td_port']")[0].InnerText); byteUNICODE = Encoding.Convert(Encoding.UTF8, Encoding.Unicode, byteUTF8); strUnicode = Encoding.Unicode.GetString(byteUNICODE); MessageBox.Show(strUnicode);
Решение задачи: «.NET 4.x ASCII или Windows-1251»
textual
Листинг программы
string proxyPort = doc.DocumentNode.SelectNodes("//td[@class='plbc_bloc_proxy_td_port']")[0].InnerText; string specSymbols = ";#&"; proxyPort = Regex.Replace(proxyPort, string.Format(@"[{0}]", specSymbols), ""); var str = Split(proxyPort, 2).ToArray(); string portNumber = String.Empty; for (int i = 0; i <= str.Length - 1; i++) { char port = Convert.ToChar(Convert.ToInt16(str[i])); portNumber = portNumber + port.ToString(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д