|
.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」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


