Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Convert.ToBase64String (Byte[])

 

Data di pubblicazione: novembre 2016

Converte una matrice di interi senza segno a 8 bit nella relativa rappresentazione di stringa equivalente codificata con cifre base 64.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public static string ToBase64String(
	byte[] inArray
)

Parametri

inArray
Type: System.Byte[]

Matrice di interi senza segno a 8 bit.

Valore restituito

Type: System.String

Rappresentazione di stringa, in base 64, del contenuto di inArray.

Exception Condition
ArgumentNullException

inArray è null.

Gli elementi di inArray sono considerati come un valore numerico e convertita in una rappresentazione di stringa codificata con cifre base 64.

Le cifre base 64 in ordine crescente da zero sono i caratteri maiuscoli "A" a "Z", i caratteri minuscoli "a" a "z", i numeri da "0" e "9" e i simboli "+" e "/". Il carattere non significativo "=", viene utilizzato per la spaziatura interna finale.

System_CAPS_importantImportante

Il ToBase64String metodo è progettato per elaborare una matrice a byte singolo che contiene tutti i dati da codificare. Per codificare i dati da un flusso, utilizzare la System.Security.Cryptography.ToBase64Transform classe.

In genere, il ToBase64String metodo non può essere utilizzato per il round trip un UUEncode (con codificata base-64) stringa. Vale a dire, se si decodifica una stringa chiamando il FromBase64String (metodo), quindi codificare la matrice di byte restituita chiamando il ToBase64String metodo, la stringa risultante non useranno necessariamente identica alla stringa originale. La stringa di round trip solo se la stringa originale è una stringa con codifica base 64 valida.

L'esempio seguente usa il ToBase64String(Byte[]) metodo per convertire una matrice di byte in una stringa UUEncode (base-64), quindi chiama il FromBase64String(String) per ripristinare la matrice di byte originale.

using System;

public class Example
{
   public static void Main()
   {
       // Define a byte array.
       byte[] bytes = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
       Console.WriteLine("The byte array: ");
       Console.WriteLine("   {0}\n", BitConverter.ToString(bytes));

       // Convert the array to a base 64 sring.
       String s = Convert.ToBase64String(bytes);
       Console.WriteLine("The base 64 string:\n   {0}\n", s);

       // Restore the byte array.
       byte[] newBytes = Convert.FromBase64String(s);
       Console.WriteLine("The restored byte array: ");
       Console.WriteLine("   {0}\n", BitConverter.ToString(newBytes));
   }
}
// The example displays the following output:
//     The byte array:
//        02-04-06-08-0A-0C-0E-10-12-14
//     
//     The base 64 string:
//        AgQGCAoMDhASFA==
//     
//     The restored byte array:
//        02-04-06-08-0A-0C-0E-10-12-14

Di seguito è un esempio più complesso che crea una matrice di 20 elementi di interi a 32 bit. Viene quindi utilizzato il BitConverter.GetBytes(Int32) metodo per convertire ogni elemento in una matrice di byte, che viene archiviato nella posizione appropriata in un buffer chiamando il Array.Copy(Array, Int32, Array, Int32, Int32) metodo. Questo buffer viene quindi passato al ToBase64String(Byte[]) metodo per creare una stringa UUEncode (base-64). Chiama quindi il FromBase64String(String) metodo decodificare la stringa convertita in UUEncode e chiama il BitConverter.ToInt32 metodo per convertire un numero intero di ogni set di quattro byte (le dimensioni di un intero a 32 bit). L'output dell'esempio mostra che la matrice originale è stata ripristinata.

using System;

public class Example
{
   public static void Main()
   {
      // Define an array of 20 elements and display it.
      int[] arr = new int[20]; 
      int value = 1;
      for (int ctr = 0; ctr <= arr.GetUpperBound(0); ctr++) {
         arr[ctr] = value;
         value = value * 2 + 1;
      }
      DisplayArray(arr);

      // Convert the array of integers to a byte array.
      byte[] bytes = new byte[arr.Length * 4];
      for (int ctr = 0; ctr < arr.Length; ctr++) {
         Array.Copy(BitConverter.GetBytes(arr[ctr]), 0, 
                    bytes, ctr * 4, 4);
      }

      // Encode the byte array using Base64 encoding
      String base64 = Convert.ToBase64String(bytes);
      Console.WriteLine("The encoded string: ");
      for (int ctr = 0; ctr <= base64.Length / 50; ctr++) 
         Console.WriteLine(base64.Substring(ctr * 50, 
                                            ctr * 50 + 50 <= base64.Length 
                                               ? 50 : base64.Length - ctr * 50));
      Console.WriteLine();

      // Convert the string back to a byte array.
      byte[] newBytes = Convert.FromBase64String(base64);

      // Convert the byte array back to an integer array.
      int[] newArr = new int[newBytes.Length/4];
      for (int ctr = 0; ctr < newBytes.Length / 4; ctr ++)
         newArr[ctr] = BitConverter.ToInt32(newBytes, ctr * 4);

      DisplayArray(newArr);
   }

   private static void DisplayArray(Array arr)
   {
      Console.WriteLine("The array:");
      Console.Write("{ ");
      for (int ctr = 0; ctr < arr.GetUpperBound(0); ctr++) {
         Console.Write("{0}, ", arr.GetValue(ctr));
         if ((ctr + 1) % 10 == 0) 
            Console.Write("\n  ");
      }
      Console.WriteLine("{0} {1}", arr.GetValue(arr.GetUpperBound(0)), "}");
      Console.WriteLine();
   }
}
// The example displays the following output:
// The array:
// { 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023,
//   2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575 }
// 
// The encoded string:
// AQAAAAMAAAAHAAAADwAAAB8AAAA/AAAAfwAAAP8AAAD/AQAA/w
// MAAP8HAAD/DwAA/x8AAP8/AAD/fwAA//8AAP//AQD//wMA//8H
// 
// The array:
// { 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023,
//   2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575 }

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: