4

インターネットからページをダウンロードするダウンローダープログラムがあります。各ページのエンコーディングは異なり、UTF-8のものもあれば、Unicodeのものもあります。例:a'a'文字を表示します; この文字でいっぱいのページ。このエンコーディングを通常のテキストに変換する必要があります。

UnicodeEncodingはc#でクラスを使用しましたが、それらは私を助けません。

このエンコーディングを実際の文字にデコードするにはどうすればよいですか?これを変換するクラスまたはメソッドはありますか?

ありがとう 。

4

3 に答える 3

6

これはhtmlでエンコードされています。HtmlDecodeを試してみませんか?(System.Web.dllへの参照が必要です)

于 2010-06-12T10:37:59.283 に答える
5

&で始まり;で終わる形式のhtmlページのテキストは、HTMLエンコードされています。

これらは、次を使用してデコードできます。

string html = ...; //your html
string decoded = System.Web.HttpUtility.HtmlDecode( html );

正しい文字セットでページをダウンロードする方法のコードについては、インターネットからHTMLをダウンロードした後に変更された文字列の文字も参照してください。

于 2010-06-12T10:38:30.780 に答える
1

HTML/XMLエスケープとUTF-8/Unicodeの間で混乱しています。

ページが有効なXMLである場合、作業は簡単になります。他のXMLドキュメントと同じように解析して、関連するテキストノードを取得するだけです...テキストを取得すると、すべてのXMLエスケープが「エスケープ解除」されます。

それが恣意的であり、おそらく無効なHTMLである場合、人生は少し難しくなります。最初にそれを有効なHTMLに正規化し、次にそれを解析して、もう一度テキストノードを要求することをお勧めします。

より具体的な例を挙げていただければ、アドバイスしやすくなります。

他のHtmlDecode回答で提案されている方法で十分かもしれませんが、最初に何が起こっているのかを確実に理解するようにしてください。たとえば、HTMLの特定のフラグメントのみをデコードしたい場合があります。ドキュメント全体をデコードすると、HTMLタグのように見えるテキストになりますが、実際には元のドキュメントにテキストが含まれているだけです。

于 2010-06-12T10:38:03.933 に答える