Convert.FromBase64String メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim s As String Dim returnValue As Byte() returnValue = Convert.FromBase64String(s)
- s
s と等価の 8 ビット符号なし整数の配列。


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 */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からConvert.FromBase64String メソッドを検索する場合は、下記のリンクをクリックしてください。

- Convert.FromBase64String メソッドのページへのリンク