.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();
}