2

WebRequestC#の a に問題があります。グーグルのページです。

ヘッダーの状態

text/html; charset=ISO-8859-1

ウェブサイトの状態

<meta http-equiv=content-type content="text/html; charset=utf-8">

そして最後に、デバッガーと正規表現で期待される結果のみを取得しますEncoding.DefaultSystem.Text.SBCSCodePageEncoding

今、私は何をしますか?これがどのように発生するのか、またはこの問題をどのように解決できるのか、ヒントはありますか?

ページの実際のエンコーディングは UTF-8 のようです。少なくとも FF は、Windows-Whatever やLatin1ではなく、UTF-8 で正しく表示します。

URLはこちら

問題は、すべてのドイツ語のウムラウトと同様に € 記号です。

私を真剣に夢中にさせているこの問題について、あなたの助けを前もってありがとう!

更新:文字列を出力するとき

// create a writer and open the file
TextWriter tw = new StreamWriter("test.txt");

// write a line of text to the file
tw.WriteLine(html);

// close the stream
tw.Close();

それはすべて正常に動作します。

したがって、問題は、デバッガーが正しいエンコーディングを表示せず、正規表現も表示しないことです。

C# に RegEx を UTF-8 として処理するように指示するにはどうすればよいですか?

4

1 に答える 1

1

HTML を解析する代わりに、Google Query APIを使用してみませんか?

ところで、正規表現を使用して HTML を解析する前に、これを読んでください;-)

編集:あなたのコメントに答えて:

  1. API は Google デスクトップでも機能します。
  2. このエンコーディングの問題は Google ページに固有のものですか?
  3. 現在抱えている問題に加えて、これらのページの HTML や Web サーバーから返されたヘッダーの微妙な変更により、本番環境で後でどのような問題に遭遇するかは誰にもわかりません。Web ページは、コンピューターに適したものではなく、人間の目に優しいものである必要があります。フレンドリーであると期待できるのは、ページの外観とレンダリングされたコンテンツだけであり、基礎となる HTML 構造ではありません。コンピューターに優しいはずの API とは対照的です。
于 2011-02-01T11:44:00.330 に答える