.NET TIPS

WindowsアプリケーションでHTMLデコード/エンコードを行うには?[4以降、C#、VB]

デジタルアドバンテージ 遠藤 孝信
2010/05/27

 昨今ではWindowsアプリケーションからWebにアクセスする機会も増えたが、Web上からHTMLデータを取得してテキストとして扱う場合、通常はHTMLデコード処理が必要となる(例:「&amp;」→「&」や「&lt;」→「<」などの変換)。逆に、HTMLデータを生成するような場合には、HTMLエンコード処理が必要となる。

 このような処理は、クラス・ライブラリでは、HttpUtilityクラス(System.Web名前空間)のHtmlDecodeメソッド/HtmlEncodeメソッドとして提供されているが*、名前空間名からも分かるように、このクラスは基本的にASP.NET Webアプリケーション用である。

* HtmlEncodeメソッドを利用したHTMLエンコード処理については「TIPS:文字列やテキストをHTMLエンコードするには?」で解説している。

 このため、Visual Studio 2008などでWindowsアプリケーションの作成時に利用するには、このクラスが含まれているアセンブリ(System.Web.dllファイル)を参照設定する必要があった。

System.Net名前空間のWebUtilityクラス

 .NET Framework 4(Visual Studio 2010)では、HTMLエンコード/デコードのためのHtmlDecodeメソッド/HtmlEncodeメソッドを含んだ「WebUtilityクラス」がSystem.Net名前空間に新たに追加されている。

 このWebUtilityクラスには、次の4つの静的メソッドが含まれている。

メソッドのシグネチャ 説明
string HtmlDecode(string value) 文字列をHTMLデコードする
void HtmlDecode(string value,TextWriter output) 文字列をHTMLデコードしてストリームに出力する
string HtmlEncode(string value) 文字列をHTMLエンコードする
void HtmlEncode(string value,TextWriter output) 文字列をHTMLデコードしてストリームに出力する
WebUtilityクラス(System.Net名前空間)に含まれる4つの静的メソッド(C#表記)

 このWebUtilityクラスはSystem.dllファイルに含まれており、これは既定で参照設定されるため、Visual Studio 2010ではHTMLエンコード/デコードを行うために、わざわざWebアプリケーション用のクラスを利用する必要がなくなった。

URLデコード/エンコード

 HTMLのデコード/エンコードに似た処理として、URLのデコード/エンコードがある。これについても簡単に触れておこう。HttpUtilityクラス(System.Web名前空間)にはUrlDecodeメソッド/UrlEncodeメソッドも含まれている*

* UrlEncodeメソッドを利用したURLエンコード処理については「TIPS:文字列をURLエンコードするには?」で解説している。

 上述したように、もちろんWindowsアプリケーションでもこれらメソッドを使えるが、Uriクラス(System名前空間)には、URLデコード用にUnescapeDataString メソッド 、URLエンコード用にはEscapeDataString メソッドEscapeUriString メソッド がある(ここでは詳細は割愛)。このクラスは.NET Framework 2.0以降でサポートされており、System.dllファイルに含まれているので、参照設定の追加なしで利用できる。End of Article

利用可能バージョン:.NET Framework 4以降
カテゴリ:クラス・ライブラリ 処理対象:文字列
カテゴリ:クラス・ライブラリ 処理対象:URL
使用ライブラリ:HttpUtilityクラス(System.Web名前空間)
使用ライブラリ:WebUtilityクラス(System.Net名前空間)
使用ライブラリ:Uriクラス(System名前空間)
関連TIPS:文字列やテキストをHTMLエンコードするには?
関連TIPS:文字列をURLエンコードするには?

この記事と関連性の高い別の.NET TIPS
WindowsアプリケーションでSystem.Webアセンブリを参照するには?
文字列をXMLコード用にエスケープするには?
文字列をURLエンコードするには?
文字列やテキストをHTMLエンコードするには?
WebBrowserコントロールによりWebページからリンクや画像を抽出するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間