.net webBrowser

apxx

С# использую webBrowser. full =webBrowser1.DocumentText
проблема с русскими буквами. Страница cp1251. Как мне получить в full текст страницы с нормальными русскими буквами?

Dasar

а в webbrowser-е html у тебя показывается правильно?

okis

А какая проблема с русскими буквами?
Может ты выводишь их не в той кодировке?

apxx

вот в браузере - да. Просто я куски страницы использую в других местах. Даже если поставить точку останова, то видно что в full с русскими буквами беда.

Dasar

вот в браузере - да.
так не бывает, чтобы в браузере русские показывались нормально, а в DocumentText шли кракозябры.

Dasar

вернее бывает, потому что в DocumentElement у тебя исходный html-текст, соответственно если русские буквы были заencode-ны, то они так и будут заencodeны.
пробуй webbrowser.Document.Body.InnerText
а еще правильнее, найди тот элемент который тебе нужен, и уже у него текст возьми.

apxx

так, мне нужно чтоб строка была
full = webBrowser1.DocumentText
b = full.Split('\n');
и уже, например b[123], если в ней русские буквы, то чтоб нормально показывало

apxx

Есть идеи как и такого куска получить русский текст?

Dasar

b = full.Split('\n');
в html-е нет никаких переводов строк.

Dasar

Есть идеи как и такого куска получить русский текст?
извратные способы есть, но все равно это будет не то, что ты хочешь
то что ты хочешь сидит в одном из элементов Document.Body

apxx

так, раз уж распарсить страницу нормально нельзя. Дайте ссылку или как мне получить доступ на c# до элементов

Dasar

Дайте ссылку или как мне получить доступ на c# до элементов
вот же она выше: Document.Body - далее лазаешь по этому дереву
есть еще Document.Body.All - те же элементы, но в плоском виде

apxx

аеее. Сделал все через поток и с 1251 заработало
Encoding encode = Encoding.GetEncoding("windows-1251");
StreamReader sr = new StreamReader(webBrowser1.DocumentStream, encode);
string answer = sr.ReadToEnd;
sr.Close;
Оставить комментарий
Имя или ник:
Комментарий: