nakamurakko’s blog

仕事で覚えたこと、勉強したことを自分のメモ代わりに書いていこうかなと。

C# base64

環境

  • Visual Studio 2019

文字列を Base64 でエンコードするには

「C# base64」でネット検索すると、 Convert.ToBase64String メソッド のページがヒットする。

文字列を Base64 でエンコードするには、 Convert.ToBase64String メソッド は引数がバイト配列なので、 Encoding.GetBytes メソッド でバイト配列化してから渡せば良い。

string originalString = "あいうえお";
Console.WriteLine("元の文字列 : " + originalString);

byte[] originalByte = Encoding.UTF8.GetBytes(originalString);
Console.WriteLine("元のバイト文字列 : " + BitConverter.ToString(originalByte));

string encodeString = Convert.ToBase64String(originalByte);
Console.WriteLine("エンコードした文字列 : " + encodeString);

出力結果

元の文字列 : あいうえお
元のバイト文字列 : E3-81-82-E3-81-84-E3-81-86-E3-81-88-E3-81-8A
エンコードした文字列 : 44GC44GE44GG44GI44GK

デコードするには

では、デコードするには Convert.FromBase64String(String) メソッド を使えば良い。 ただ、 Convert.FromBase64String(String) はデコードしたバイト配列なので、 Encoding.GetString メソッド で文字列化してから渡せば良い。

byte[] decodeByte = Convert.FromBase64String(encodeString);
Console.WriteLine("デコードしたバイト配列 : " + BitConverter.ToString(decodeByte));

string decodeString = Encoding.UTF8.GetString(decodeByte);
Console.WriteLine("デコードした文字列 : " + decodeString);

出力結果

デコードしたバイト配列 : E3-81-82-E3-81-84-E3-81-86-E3-81-88-E3-81-8A
デコードした文字列 : あいうえお

ソースは https://github.com/nakamurakko/Base64EncodeStudy を参照。