C# と HtmlAgilityPack のエンコードの問題 質問する

C# と HtmlAgilityPack のエンコードの問題 質問する
WebClient GodLikeClient = new WebClient();
HtmlAgilityPack.HtmlDocument GodLikeHTML = new HtmlAgilityPack.HtmlDocument();

GodLikeHTML.Load(GodLikeClient.OpenRead("www.alfa.lt");

したがって、このコードは、「Skaitytojo klausimas psichologui: kas lemia homoseksualumą? - Naujienų portalas Alfa.lt」ではなく、「Skaitytojo klausimas psichologui: kas lemia homoseksualumÄ…? - Naujienų Portalas Alfa.lt」を返します。

この Web ページは 1257 (バルト語) でエンコードされていますが、textBox1.Text = GodLikeHTML.DocumentNode.OuterHtml;歪んだテキストが返されます。バルト語の発音区別符号が、奇妙な数文字の長い文字列に変換されます :(

はい、HtmlAgilityPack フォーラムを試してみました。本当にひどいです。

PS 私はプログラマーではありませんが、コミュニティ プロジェクトに携わっており、このコードを動作させる必要があります。ありがとうございます ;}

ベストアンサー1

実際、このページは UTF-8 でエンコードされています。

GodLikeHTML.Load(GodLikeClient.OpenRead("http://www.alfa.lt"), Encoding.UTF8);

働くでしょう。

または、私のコードを使うこともできますだから答えるHTTP ヘッダーまたはメタ タグからエンコードを検出し、適切に再エンコードします。(ダウンロードを最小限に抑えるために gzip もサポートしています)。

ダウンロード クラスを使用すると、コードは次のようになります。

HttpDownloader downloader = new HttpDownloader("http://www.alfa.lt",null,null);
GodLikeHTML.LoadHtml(downloader.GetPage());

おすすめ記事