文字列を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
コメントを書く