.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
文字列をXMLコード用にエスケープするには?
WindowsアプリケーションでSystem.Webアセンブリを参照するには?
文字列をURLエンコードするには?
文字列やテキストをHTMLエンコードするには?
[Silverlight 2]HTML要素にフォーカスを設定するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH