HtmlAgilityPackキャプチャページの文字化けし処理

1135 ワード

HtmlAgilityPackでページをキャプチャするのは便利ですが、ページがgb 2312符号化されていると文字化けしてしまうので、ネットで調べてみるとデフォルトのページ取得方法が未熟だということで、具体的には何なのか分かりませんが、一応未熟だと思います.
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument htmlDocument = htmlWeb.Load(@url);

 
解決策は次のとおりです.
新しい方法でHtmlDocumentを取得し、ページのアドレスをキャプチャします.
       private static HtmlDocument GetHtmlDocument(string url)
        {
            HttpWebRequest httpWebRequest = WebRequest.Create(new Uri(@url)) as HttpWebRequest;
            httpWebRequest.Method = "GET";
            WebResponse webResponse = httpWebRequest.GetResponse();
            Stream stream = webResponse.GetResponseStream();
            HtmlDocument htmlDocument = new HtmlDocument();
            htmlDocument.Load(stream);

            return htmlDocument;
        }

 
@無機の剣のコメントによると、この属性で解決しました(O(∩∩)O~):
HtmlWeb htmlWeb = new HtmlWeb(); 
htmlWeb.OverrideEncoding = Encoding.GetEncoding("gb2312");

 
これでいい!后の使い方はすべて同じですが、具体的にはこのブログを参考にして、详しく教えてください.