ASP.NET において文字列を HTML エンコードと HTML デコードを行う場合には、Server.HtmlEncode メソッドや HttpUtility.HtmlDecode メソッドを使用することが一般的だと思います。また、Windows アプリケーションでも、System.Web.dll の参照設定を追加することで HttpUtility クラスを使用することができます。ここでの動作確認は Windows アプリケーションで行っていますが、ASP.NET アプリでも結果は同じです。
スポンサーリンク
サンプルコード
HTML エンコードとデコードを行うサンプルになりますが、.Net Framework 4 以前では、シングルクォーテーションは、HTML エンコードとデコードの対象になっていませんので注意してください。エンコードの結果が違ってきます。
VB.NET
Dim str As String = "<"">&'" ' HTML エンコード(デコード)を行う文字 ' HTML エンコードする Dim encodeStr As String = System.Web.HttpUtility.HtmlEncode(str) Console.WriteLine(encodeStr) ' 出力(エンコード) ' <">&' ' HTML デコードする Dim decodeStr As String = System.Web.HttpUtility.HtmlDecode(encodeStr) Console.WriteLine(decodeStr) ' 出力(デコード) ' <">&'
C#
string str = "<\">&'"; // HTML エンコード(デコード)を行う文字 // HTML エンコードする string encodeStr = System.Web.HttpUtility.HtmlEncode(str); Console.WriteLine(encodeStr); // 出力(エンコード) // <">&' // HTML デコードする string decodeStr = System.Web.HttpUtility.HtmlDecode(encodeStr); Console.WriteLine(decodeStr); // 出力(デコード) // <">&'
.Net Framework4 以降では System.Net.WebUtility クラスが追加
.Net Framework4 から System.Net 名前空間に追加された WebUtility クラスが追加されて HTML エンコードとデコードを行うことができるようになりました。Windows アプリケーションでも参照設定の追加なしで使用できます。
VB.NET
Dim str As String = "<"">&'" ' HTML エンコードする Dim encodeStr As String = System.Net.WebUtility.HtmlEncode(str) Console.WriteLine(encodeStr) ' 出力(エンコード) ' <">&' ' HTML デコードする Dim decodeStr As String = System.Net.WebUtility.HtmlDecode(encodeStr) Console.WriteLine(decodeStr) ' 出力(デコード) ' <">&'
C#
string str = "<\">&'"; // HTML エンコードする string encodeStr = System.Net.WebUtility.HtmlEncode(str); Console.WriteLine(encodeStr); // 出力(エンコード) // <">&' // HTML デコードする string decodeStr = System.Net.WebUtility.HtmlDecode(encodeStr); Console.WriteLine(decodeStr); // 出力(デコード) // <">&'
参考