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

snull 参照 (Visual Basic では Nothing) です。

FormatException

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

または

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

解説解説

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

空白文字、およびそれらの Unicode 名と 16 進数コード ポイントは、タブ (CHARACTER TABULATIONU+0009)、改行 (LINE FEEDU+000A)、復帰 (CARRIAGE RETURNU+000D)、および空白 (SPACEU+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 進000102構成されます。これらは、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

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


このページでは「.NET Framework クラス ライブラリ リファレンス」からConvert.FromBase64String メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からConvert.FromBase64String メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からConvert.FromBase64String メソッドを検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

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

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

   

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



Convert.FromBase64String メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS