.NET TIPS WindowsアプリケーションでHTMLデコード/エンコードを行うには?[4以降、C#、VB]デジタルアドバンテージ 遠藤 孝信2010/05/27 |
|
|
昨今ではWindowsアプリケーションからWebにアクセスする機会も増えたが、Web上からHTMLデータを取得してテキストとして扱う場合、通常はHTMLデコード処理が必要となる(例:「&」→「&」や「<」→「<」などの変換)。逆に、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つの静的メソッドが含まれている。
| ||||||||||
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ファイルに含まれているので、参照設定の追加なしで利用できる。
利用可能バージョン:.NET Framework 4以降 カテゴリ:クラス・ライブラリ 処理対象:文字列 カテゴリ:クラス・ライブラリ 処理対象:URL 使用ライブラリ:HttpUtilityクラス(System.Web名前空間) 使用ライブラリ:WebUtilityクラス(System.Net名前空間) 使用ライブラリ:Uriクラス(System名前空間) 関連TIPS:文字列やテキストをHTMLエンコードするには? 関連TIPS:文字列をURLエンコードするには? |
|
「.NET TIPS」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|