[C#][VB] 文字列をBase64形式にエンコード・デコードする方法

[C#][VB] 文字列をBase64形式にエンコード・デコードする方法

文字列をBase64形式にエンコード・デコードする方法

C#ないしVB.NETで文字列をBase64形式に変換するには、一度文字列をByte型配列に変換しそれをBase64文字列に変換します。Base64形式の文字列をもとの文字列に戻すには、その逆方向に実行します。

ただし、文字列をByte型配列に変換する際には、文字コードを意識しなければなりません。以下の例ではUTF-8でエンコード・デコードしています。

C#

using System;
using System.Text;

public class Program
{
    public static void Main(string[] args)
    {
        // 文字列
        string text = "Hello World";

        // UTF-8でエンコードする
        Encoding enc = new UTF8Encoding();

        // Base64文字列に変換
        string str_base64 = Base64Encode(text, enc);

        // Base64文字列から文字列変換
        string decode_text = Base64Decode(str_base64, enc);

        Console.WriteLine($"Base64 : {str_base64}");
        Console.WriteLine($"DecodeString : {decode_text}");
    }

    // Base64エンコード
    public static string Base64Encode(string str, Encoding enc)
    {
        byte[] bytes = enc.GetBytes(str);
        return Convert.ToBase64String(bytes);
    }

    // Base64デコード
    public static string Base64Decode(string str, Encoding enc)
    {
        byte[] bytes = Convert.FromBase64String(str);
        return enc.GetString(bytes);
    }
}

VB.NET

Imports System
Imports System.Text

public class Program
    public shared sub Main
        ' 文字列
        Dim text As String = "Hello World"

        ' UTF-8でエンコードする
        Dim enc As Encoding = New UTF8Encoding()

        ' Base64文字列に変換
        Dim str_base64 As string = Base64Encode(text, enc)

        ' Base64文字列から文字列変換
        Dim decode_text As string = Base64Decode(str_base64, enc)

        Console.WriteLine($"Base64 : {str_base64}")
        Console.WriteLine($"DecodeString : {decode_text}")
    End sub

    ' Base64エンコード
    public shared Function Base64Encode(Byval str As string, Byval enc As Encoding) As String
        Dim bytes As Byte() = enc.GetBytes(str)
        return Convert.ToBase64String(bytes)
    end Function

    ' Base64デコード
    public shared Function Base64Decode(Byval str As string, Byval enc As Encoding) As String
        Dim bytes As Byte() = Convert.FromBase64String(str)
        return enc.GetString(bytes)
    end Function

end class

C#カテゴリの最新記事