[ ASP.NET ] HTML エンコードとデコード ( HttpUtility.HtmlEncode / HttpUtility.HtmlDecode )

Pocket

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)
    
    ' 出力(エンコード)
    ' &lt;&quot;&gt;&amp;&#39;

    ' 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);

    // 出力(エンコード)
    // &lt;&quot;&gt;&amp;&#39;

    // 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)

    ' 出力(エンコード)
    ' &lt;&quot;&gt;&amp;&#39;

    ' 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);

    // 出力(エンコード)
    // &lt;&quot;&gt;&amp;&#39;

    // HTML デコードする
    string decodeStr = System.Net.WebUtility.HtmlDecode(encodeStr);
    Console.WriteLine(decodeStr);

    // 出力(デコード)
    // <">&'
参考

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *