Convert.FromBase64String メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Convert.FromBase64String メソッドの意味・解説 

Convert.FromBase64String メソッド

指定した String を変換します。これにより、バイナリ データは Base64 の数字として等価の 8 ビット符号なし整数配列にエンコードされます。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Shared Function FromBase64String
 ( _
    s As String _
) As Byte()
Dim s As String
Dim returnValue As Byte()

returnValue = Convert.FromBase64String(s)
public static byte[] FromBase64String (
    string s
)
public:
static array<unsigned char>^ FromBase64String
 (
    String^ s
)
public static byte[] FromBase64String (
    String s
)
public static function FromBase64String
 (
    s : String
) : byte[]

パラメータ

s

String。

戻り値
s と等価の 8 ビット符号なし整数の配列。

例外例外
例外の種類条件

ArgumentNullException

s が null 参照 (Visual Basic では Nothing) です。

FormatException

空白文字を除いた s の長さが 0 ではないか、または 4 の倍数ではありません。

または

s の書式が無効です。s に Base64 形式以外の文字、2 つ以上の埋め込み文字、または埋め込み文字の間に空白以外の文字が含まれています。

解説解説

s は、Base64 形式の文字、および空白文字で構成されます。ただし、それらの文字の後に、適切な長さになるように文字が埋め込まれます。Base64 形式の文字を 0 から昇順で並べると、大文字の "A" ~ "Z"、小文字の "a" ~ "z"、数字の "0" ~ "9"、および "+" と "/" の記号になります。

空白文字、およびそれらの Unicode 名と 16 進数のコード ポイントは、タブ (CHARACTER TABULATION、U+0009)、改行 (LINE FEED、U+000A)、復帰 (CARRIAGE RETURN、U+000D)、および空白 (SPACE、U+0020) です。空白文字はすべて無視されるため、任意の数の空白文字を s に含めることができます。

値として解釈されない文字 "=" は、文字列末尾の埋め込み用に使用されます。s の末尾は、1 つまたは 2 つの埋め込み文字で構成されます。

使用例使用例

FromBase64String メソッドを使用して、uuencode されたデータ (Base64 形式のデータ) をデコードし、バイナリ出力として保存する方法を次のコード例に示します。

Public Sub DecodeWithString()
   Dim inFile As System.IO.StreamReader
   Dim base64String As String

   Try
      Dim base64CharArray() As Char
      inFile = New System.IO.StreamReader(inputFileName, _
                                          System.Text.Encoding.ASCII)
      base64CharArray = New Char(inFile.BaseStream.Length)
 {}
      inFile.Read(base64CharArray, 0, inFile.BaseStream.Length)
      base64String = New String(base64CharArray,
 _
                                0, _
                                base64CharArray.Length - 1)
   Catch exp As System.Exception
      ' Error creating stream or reading from it.
      System.Console.WriteLine("{0}", exp.Message)
      Return
   End Try

   ' Convert the Base64 UUEncoded input into binary output.
   Dim binaryData() As Byte
   Try
      binaryData = System.Convert.FromBase64String(base64String)
   Catch exp As System.ArgumentNullException
      System.Console.WriteLine("Base 64 string is null.")
      Return
   Catch exp As System.FormatException
      System.Console.WriteLine("Base 64 length is not 4 or is
 " + _
                               "not an even multiple of 4.")
      Return
   End Try

   'Write out the decoded data.
   Dim outFile As System.IO.FileStream
   Try
      outFile = New System.IO.FileStream(outputFileName, _
                                         System.IO.FileMode.Create, _
                                         System.IO.FileAccess.Write)
      outFile.Write(binaryData, 0, binaryData.Length - 1)
      outFile.Close()
   Catch exp As System.Exception
      ' Error creating stream or writing to it.
      System.Console.WriteLine("{0}", exp.Message)
   End Try
End Sub
public void DecodeWithString() {
    System.IO.StreamReader inFile;     
    string base64String;

    try {
        char[] base64CharArray;
        inFile = new System.IO.StreamReader(inputFileName,
                                        System.Text.Encoding.ASCII);
        base64CharArray = new char[inFile.BaseStream.Length];
        inFile.Read(base64CharArray, 0, (int)inFile.BaseStream.Length);
        base64String = new string(base64CharArray);
    }
    catch (System.Exception exp) {
        // Error creating stream or reading from it.
        System.Console.WriteLine("{0}", exp.Message);
        return;
    }

    // Convert the Base64 UUEncoded input into binary output.
    byte[] binaryData;
    try {
        binaryData = 
            System.Convert.FromBase64String(base64String);
    }
    catch (System.ArgumentNullException) {
        System.Console.WriteLine("Base 64 string is null.");
        return;
    }
    catch (System.FormatException) {
        System.Console.WriteLine("Base 64 string length is
 not " +
            "4 or is not an even multiple of 4." );
        return;
    }

    // Write out the decoded data.
    System.IO.FileStream outFile;
    try {
        outFile = new System.IO.FileStream(outputFileName,
                                           System.IO.FileMode.Create,
                                           System.IO.FileAccess.Write);
        outFile.Write(binaryData, 0, binaryData.Length);
        outFile.Close();
    }
    catch (System.Exception exp) {
        // Error creating stream or writing to it.
        System.Console.WriteLine("{0}", exp.Message);
    }
}
public:
   void DecodeWithString()
   {
      StreamReader^ inFile;
      String^ base64String;
      try
      {
         array<Char>^base64CharArray;
         inFile = gcnew StreamReader( inputFileName,
                                      Text::Encoding::ASCII );
         base64CharArray = gcnew array<Char>((int)(inFile->BaseStream->Length));
         inFile->Read( base64CharArray, 0, (int)inFile->BaseStream->Length
 );
         base64String = gcnew String( base64CharArray );
      }
      catch ( Exception^ exp ) 
      {
         // Error creating stream or reading from it.
         Console::WriteLine( "{0}", exp->Message );
         return;
      }
      
      // Convert the Base64 UUEncoded input into binary output.
      array<Byte>^binaryData;
      try
      {
         binaryData = Convert::FromBase64String( base64String );
      }
      catch ( ArgumentNullException^ ) 
      {
         Console::WriteLine( "Base 64 String^ is null."
 );
         return;
      }
      catch ( FormatException^ ) 
      {
         Console::WriteLine( "Base 64 String^ length is not " +
            "4 or is not an even multiple of 4." );
         return;
      }
      
      // Write out the decoded data.
      FileStream^ outFile;
      try
      {
         outFile = gcnew FileStream( outputFileName,
                                     FileMode::Create,
                                     FileAccess::Write );
         outFile->Write( binaryData, 0, binaryData->Length );
         outFile->Close();
      }
      catch ( Exception^ exp ) 
      {
         // Error creating stream or writing to it.
         Console::WriteLine( "{0}", exp->Message );
      }
   }
public void DecodeWithString()
{
    System.IO.StreamReader inFile;
    String base64String;

    try {
        char base64CharArray[];

        inFile = new System.IO.StreamReader(inputFileName,
                System.Text.Encoding.get_ASCII());

        base64CharArray = new char[
                        (int)inFile.get_BaseStream().get_Length()];

        inFile.Read(base64CharArray,0,
            (int)(inFile.get_BaseStream().get_Length()));

        base64String = new String(base64CharArray);
    }
    catch (System.Exception exp) {
        // Error creating stream or reading from it.
        System.Console.WriteLine("{0}", exp.get_Message());
        return;
    }

    // Convert the Base64 UUEncoded input into binary output.
    ubyte binaryData[];

    try {
        binaryData = System.Convert.FromBase64String(base64String);
    }
    catch (System.ArgumentNullException exp) {
        System.Console.WriteLine("Base 64 string is null.");
        return;
    }
    catch (System.FormatException exp) {
        System.Console.WriteLine(("Base 64 string length
 is not " 
            + "4 or is not an even multiple of 4."));
        return;
    }

    // Write out the decoded data.
    System.IO.FileStream outFile;

    try {
        outFile = new System.IO.FileStream(outputFileName, 
                System.IO.FileMode.Create, System.IO.FileAccess.Write);
        outFile.Write(binaryData, 0, binaryData.length);
        outFile.Close();
    }
    catch (System.Exception exp) {
        // Error creating stream or writing to it.
        System.Console.WriteLine("{0}", exp.get_Message());
    }
} //DecodeWithString

ToBase64String メソッドおよび FromBase64String メソッドのコード例を次に示します。入力は、3 バイト (24 ビット) ごとのグループに分けられます。したがって、各グループは、10 進数の 0 ~ 63 の範囲の 4 つの 6 ビット数値で構成されます。この例では、85 個の 3 バイトのグループがあり、1 バイトが残されています。最初のグループは、16 進値 00、01、02 で構成されます。これらは、10 進数の 0、0、4、2 に相当する 4 つの 6 ビット値を生成します。この 4 つの値は、出力の最初にある Base64 形式の文字 "A"、"A"、"E"、"C" に対応します。

3 バイトのグループの整数が存在しない場合は、残りのバイトに 0 が効率的に埋め込まれ、完全なグループが形成されます。この例では、最後のバイト値は 16 進数の FF です。最初の 6 ビットは 10 進数の 63 に相当し、出力の末尾にある Base64 形式の文字 "/" に対応します。次の 2 ビットには 0 が埋め込まれ、10 進数の 48 が生成されます。これは、Base64 形式の文字 "w" に対応します。最後の 2 つの 6 ビット値が埋め込まれます。これらは値として解釈されない埋め込み文字 "=" に対応します。

' This example demonstrates the Convert.ToBase64String() and 
'                               Convert.FromBase64String() methods
Imports System

Class Sample
   Public Shared Sub Main()
      Dim inArray(255)  As Byte
      Dim outArray(255) As Byte
      Dim s2 As String
      Dim s3 As String
      Dim step1 As String
 = "1) The input is a byte array (inArray) of arbitrary data."
      Dim step2 As String
 = "2) Convert a subarray of the input data array to a base 64
 string."
      Dim step3 As String
 = "3) Convert the entire input data array to a base 64 string."
      Dim step4 As String
 = "4) The two methods in steps 2 and 3 produce the same result?:
 {0}"
      Dim step5 As String
 = "5) Convert the base 64 string to an output byte array (outArray)."
      Dim step6 As String
 = "6) The input and output arrays, inArray and outArray, are
 equal?: {0}"
      Dim x As Integer
      Dim nl As String =
 Environment.NewLine
      Dim ruler1a As String
 = "         1         2         3         4"
      Dim ruler2a As String
 = "1234567890123456789012345678901234567890"
      Dim ruler3a As String
 = "----+----+----+----+----+----+----+----+"
      Dim ruler1b As String
 = "         5         6         7      "
      Dim ruler2b As String
 = "123456789012345678901234567890123456"
      Dim ruler3b As String
 = "----+----+----+----+----+----+----+-"
      Dim ruler As String
 = [String].Concat(ruler1a, ruler1b, nl, ruler2a, ruler2b, nl, ruler3a, ruler3b,
 nl)
      
      ' 1) Display an arbitrary array of input data (inArray). The data
 could be 
      '    derived from user input, a file, an algorithm, etc.
      Console.WriteLine(step1)
      Console.WriteLine()
      For x = 0 To inArray.Length - 1
         inArray(x) = CByte(x)
         Console.Write("{0:X2} ", inArray(x))
         If (x + 1) Mod 20 = 0 Then
            Console.WriteLine()
         End If
      Next x
      Console.Write("{0}{0}", nl)
      
      ' 2) Convert a subarray of the input data to a base64 string.
 In this case, 
      '    the subarray is the entire input data array. New lines (CRLF)
 are inserted.
      Console.WriteLine(step2)
      s2 = Convert.ToBase64String(inArray, 0, inArray.Length, _
                                  Base64FormattingOptions.InsertLineBreaks)
      Console.WriteLine("{0}{1}{2}{3}", nl, ruler,
 s2, nl)
      
      ' 3) Convert the input data to a base64 string. In this case,
 the entire 
      '    input data array is converted by default. New lines (CRLF)
 are inserted.
      Console.WriteLine(step3)
      s3 = Convert.ToBase64String(inArray, Base64FormattingOptions.InsertLineBreaks)
      
      ' 4) Test whether the methods in steps 2 and 3 produce the same
 result.
      Console.WriteLine(step4, s2.Equals(s3))
      
      ' 5) Convert the base 64 string to an output array (outArray).
      Console.WriteLine(step5)
      outArray = Convert.FromBase64String(s2)
      
      ' 6) Is outArray equal to inArray?
      Console.WriteLine(step6, ArraysAreEqual(inArray, outArray))
   End Sub 'Main
   
   
   Public Shared Function
 ArraysAreEqual(a1() As Byte, a2() As
 Byte) As Boolean
      If a1.Length <> a2.Length Then
         Return False
      End If
      Dim i As Integer
      For i = 0 To a1.Length - 1
         If a1(i) <> a2(i) Then
            Return False
         End If
      Next i
      Return True
   End Function 'ArraysAreEqual
End Class 'Sample
'
'This example produces the following results:
'
'1) The input is a byte array (inArray) of arbitrary data.
'
'00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
'14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27
'28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B
'3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
'50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63
'64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77
'78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B
'8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
'A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3
'B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7
'C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB
'DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
'F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
'
'2) Convert a subarray of the input data array to a base 64 string.
'
'         1         2         3         4         5         6      
   7
'1234567890123456789012345678901234567890123456789012345678901234567890123456
'----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-
'AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4
'OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3Bx
'cnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmq
'q6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj
'5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==
'
'3) Convert the entire input data array to a base 64 string.
'4) The two methods in steps 2 and 3 produce the same result?: True
'5) Convert the base 64 string to an output byte array (outArray).
'6) The input and output arrays, inArray and outArray, are equal?: True
'
// This example demonstrates the Convert.ToBase64String() and 
//                               Convert.FromBase64String() methods

using System;
class Sample 
{
    public static void Main()
 
    {
    byte[] inArray  = new byte[256];
    byte[] outArray = new byte[256];
    string s2;
    string s3;
    string step1 = "1) The input is a byte array (inArray)
 of arbitrary data.";
    string step2 = "2) Convert a subarray of the input data
 array to a base 64 string.";
    string step3 = "3) Convert the entire input data array
 to a base 64 string.";
    string step4 = "4) The two methods in
 steps 2 and 3 produce the same result?: {0}";
    string step5 = "5) Convert the base
 64 string to an output byte array (outArray).";
    string step6 = "6) The input and output arrays, inArray
 and outArray, are equal?: {0}";
    int x;
    string nl = Environment.NewLine;
    string ruler1a = "         1         2         3    
     4";
    string ruler2a = "1234567890123456789012345678901234567890";
    string ruler3a = "----+----+----+----+----+----+----+----+";
    string ruler1b = "         5         6         7    
  ";
    string ruler2b = "123456789012345678901234567890123456";
    string ruler3b = "----+----+----+----+----+----+----+-";
    string ruler   = String.Concat(ruler1a, ruler1b, nl, 
                                   ruler2a, ruler2b, nl,
                                   ruler3a, ruler3b, nl);

// 1) Display an arbitrary array of input data (inArray). The data could
 be 
//    derived from user input, a file, an algorithm, etc.

    Console.WriteLine(step1);
    Console.WriteLine();
    for (x = 0; x < inArray.Length; x++)
        {
        inArray[x] = (byte)x;
        Console.Write("{0:X2} ", inArray[x]);
        if (((x+1)%20) == 0) Console.WriteLine();
        }
    Console.Write("{0}{0}", nl);

// 2) Convert a subarray of the input data to a base64 string. In this
 case, 
//    the subarray is the entire input data array. New lines (CRLF)
 are inserted.

    Console.WriteLine(step2);
    s2 = Convert.ToBase64String(inArray, 0, inArray.Length, 
                                Base64FormattingOptions.InsertLineBreaks);
    Console.WriteLine("{0}{1}{2}{3}", nl, ruler, s2, nl);

// 3) Convert the input data to a base64 string. In this case, the entire
 
//    input data array is converted by default. New lines (CRLF) are
 inserted.

    Console.WriteLine(step3);
    s3 = Convert.ToBase64String(inArray, Base64FormattingOptions.InsertLineBreaks);

// 4) Test whether the methods in steps 2 and 3 produce the same result.
    Console.WriteLine(step4, s2.Equals(s3));

// 5) Convert the base 64 string to an output array (outArray).
    Console.WriteLine(step5);
    outArray = Convert.FromBase64String(s2);

// 6) Is outArray equal to inArray?
   Console.WriteLine(step6, ArraysAreEqual(inArray, outArray));
   }

    public static bool ArraysAreEqual(byte[]
 a1, byte[] a2)
    {
    if (a1.Length != a2.Length) return false;
    for (int i = 0; i < a1.Length; i++)
        if (a1[i] != a2[i]) return false;
    return true;
    }
}
/*
This example produces the following results:

1) The input is a byte array (inArray) of arbitrary data.

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27
28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B
3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63
64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77
78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B
8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3
B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7
C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB
DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

2) Convert a subarray of the input data array to a base 64 string.

         1         2         3         4         5         6         7
1234567890123456789012345678901234567890123456789012345678901234567890123456
----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-
AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4
OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmq
q6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj
5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==

3) Convert the entire input data array to a base 64 string.
4) The two methods in steps 2 and 3 produce the same result?:
 True
5) Convert the base 64 string to an output
 byte array (outArray).
6) The input and output arrays, inArray and outArray, are equal?: True

*/
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「Convert.FromBase64String メソッド」の関連用語

Convert.FromBase64String メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Convert.FromBase64String メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS