質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

5306閲覧

C#のHtmlAgilityPackでEUCのデータを取得する方法

GiveAHand

総合スコア286

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2016/07/06 14:24

C#で指定のURLのHTMLを取得して解析するプログラムを作成しています。

WebBrowserを使って、

C#

1//送信先アドレス 2string url = "http://xxxxxx.php"; 3 4//送信データ 5string str_post = "data=001"; 6 7//変換(バイト配列) 8byte[] byte_post = Encoding.ASCII.GetBytes(str_post); 9 10//ヘッダー情報 11string str_header = "Content-Type: application/x-www-form-urlencoded\r\n"; 12 13//表示 14this.Webbrowser1.Navigate(url, null, byte_post, str_header);

このように、あるPHPのサイトにPOSTした結果を、取得したいのですが、WebBrowser1のDocumentCompletedイベントで、HtmlAgilityPackを使って、

C#

1HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 2doc.OptionAutoCloseOnEnd = false; 3doc.OptionCheckSyntax = false; 4doc.OptionFixNestedTags = true; 5doc.LoadHtml(Webbrowser1.DocumentText);

このようにページのHTMLを取得すると文字化けしてしまいます。

HtmlAgilityPackを使って、EUCのHTMLを文字化けせずに取得する方法は無いものでしょうか?

ちなみに、自分なりにいろいろ調べましたところ、

HTMLパーサ「Html Agility Pack」を使ってみた
http://hinatak.blogspot.jp/2011/02/htmlhtml-agility-pack.html

こちらのページに、HTMLページをEUCで取得して、HtmlAgilityPackに取得したHTMLを入れる方法がありますが、この方法だと、あくまでも、指定のURLのデータを取ってくる方法なので、Webbrowser1に表示させたHTMLをEUCで取得する方法が知りたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DocumentTextプロパティの罠かな。
DocumentStreamプロパティ経由で文字コードを変換するのが良いのではないでしょうか。

C#

1//サンプルコード 2doc.LoadHtml(Encoding.GetEncoding("euc-jp").GetString(((MemoryStream)webBrowser1.DocumentStream).ToArray()));

投稿2016/07/06 16:04

nakit

総合スコア410

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GiveAHand

2016/07/07 00:27

nakit様 うまくいきました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問