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);
// 出力(デコード)
// <">&'
参考