WebClient GodLikeClient = new WebClient();
HtmlAgilityPack.HtmlDocument GodLikeHTML = new HtmlAgilityPack.HtmlDocument();
GodLikeHTML.Load(GodLikeClient.OpenRead("www.alfa.lt");
그래서이 코드는 "Skaitytojo klausimas psichologui : kas lemia homoseksualumã"â € | - Naujienà ... ³ 포털 Alfa.lt "대신"Skaitytojo klausimas psichologui : kas lemia homoseksualumÄ ...? - Naujienó³ portalas Alfa.lt "를 반환합니다.
이 웹 페이지는 1257 (baltic)로 인코딩되었지만 textBox1.Text = GodLikeHTML.DocumentNode.OuterHtml;
왜곡 된 텍스트를 반환합니다 - 발트 어 발음 구별 부호는 몇 가지 이상한 문자로 변환됩니다 긴 문자열 :(
그리고 네, HtmlAgilityPack 포럼을 시도했습니다. 그들은 빨기를한다.
추신 : 나는 프로그래머가 아니지만 커뮤니티 프로젝트에서 일하기 때문에이 코드를 작동시켜야합니다. 감사 ;}
실제로 페이지는 UTF-8로 인코딩됩니다.
GodLikeHTML.Load(GodLikeClient.OpenRead("http://www.alfa.lt"), Encoding.UTF8);
작동합니다.
또는 HTTP 헤더 또는 메타 태그에서 인코딩을 감지하는 내 SO 응답 의 코드를 올바르게 다시 인코딩 할 수 있습니다. (또한 다운로드를 최소화하기 위해 gzip을 지원합니다.)
다운로드 클래스에서 코드는 다음과 같이 보입니다.
HttpDownloader downloader = new HttpDownloader("http://www.alfa.lt",null,null);
GodLikeHTML.LoadHtml(downloader.GetPage());
비슷한 인코딩 문제가있었습니다. HtmlAgilityPack의 최신 버전에서 WebClient 초기화에 다음을 추가하여 수정했습니다.
var htmlWeb = new HtmlWeb();
htmlWeb.OverrideEncoding = Encoding.UTF8;
var doc = htmlWeb.Load("www.alfa.lt");