web-dev-qa-db-ja.com

System.WebなしのC#HTMLDecodeは可能ですか?

System.Web名前空間には、HTMLエンティティをデコードするためのさまざまなメソッドがあることを知っています(スペースの「%20」など)。 Winformsアプリケーションを構築していますが、htmlエンコードされた文字列を処理する必要があります。基本的に私はiTunesライブラリのXMLファイルを持っていて、ファイルをチェックするためにそこにあるURLをデコードする必要があります。

System.Web名前空間なしでこれは可能ですか?

47
miccet

クライアントアプリでSystem.Web.HttpUtilityを使用する必要があり、System.Web.dllを参照する必要があったため、NET4フル(System.Web.dllがフル)をターゲットとする開発者は、新しいSystem.dllにあるSystem.Net.WebUtilityクラス(System.dllはNET4クライアントプロファイルにあります)。 System.Net.WebUtilityには、HtmlEncodeおよびHtmlDecodeが含まれています。 URLエンコードは、System.Uriクラス(これもSystem.dll内)を使用して実行できます。

から http://blogs.msdn.com/b/jgoldb/archive/2010/04/12/what-s-new-in-net-framework-4-client-profile-rtm.aspx =

94
bizon

System.Net.WebUtility.HtmlDecode

HTTP送信用にHTMLエンコードされた文字列を、デコードされた文字列に変換します。

26
kirankumar

Windowsフォームアプリを作成しているからといって、System.Webの使用が妨げられることはありません。 System.Web.dllへの参照を追加するだけです。

24
Jon Skeet

System.Webなしでこれを行う方法にまだ興味がある場合は、 この記事 を参照してください。 URIデコードのソリューションを提供します(これは実際にデコードしているものであり、「&emdash;」のようなHTMLエンティティではありません)。

7
Steve Eisner

.NETフレームワークにあるメソッドを使用するには、System.Web名前空間を使用してHtmlDecodeメソッドを取得する必要があります。

はい、独自のメソッドを記述してそれを行うことはできますが、それはあまり意味がありません。

System.webへの参照を追加するだけです。

0
Mitchel Sellers

多分それはwinformsで助けることができます:

System.Uri.EscapeUriString(plainText);
0
Simko