Прочитать на английском

Поделиться через


Base64FormattingOptions Перечисление

Определение

Указывает, вставляют ли соответствующие методы ToBase64CharArray и ToBase64String разрыва строк в свои выходные данные.

Это перечисление поддерживает побитовую комбинацию значений его членов.

C#
[System.Flags]
public enum Base64FormattingOptions
Наследование
Base64FormattingOptions
Атрибуты

Поля

InsertLineBreaks 1

Вставляет разрывы строк после каждых 76 символов в строковом представлении.

None 0

Не вставляет разрывы строк после каждых 76 символов в строковом представлении.

Примеры

В следующем примере вызывается Convert.ToBase64String(Byte[], Base64FormattingOptions) метод с аргументом InsertLineBreaks для вставки разрывов строк в строку, созданную путем кодирования массива байтов 100 элементов:

C#
using System;

public class Example
{
   public static void Main()
   {
       // Define a byte array.
       var bytes = new byte[100];
       int originalTotal = 0;
       for (int ctr = 0; ctr <= bytes.GetUpperBound(0); ctr++) {
          bytes[ctr] = (byte)(ctr + 1);
          originalTotal += bytes[ctr];
       }
       // Display summary information about the array.
       Console.WriteLine("The original byte array:");
       Console.WriteLine("   Total elements: {0}", bytes.Length);
       Console.WriteLine("   Length of String Representation: {0}",
                         BitConverter.ToString(bytes).Length);
       Console.WriteLine("   Sum of elements: {0:N0}", originalTotal);
       Console.WriteLine();

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

       // Restore the byte array.
       Byte[] newBytes = Convert.FromBase64String(s);
       int newTotal = 0;
       foreach (var newByte in newBytes)
          newTotal += newByte;

       // Display summary information about the restored array.
       Console.WriteLine("   Total elements: {0}", newBytes.Length);
       Console.WriteLine("   Length of String Representation: {0}",
                         BitConverter.ToString(newBytes).Length);
       Console.WriteLine("   Sum of elements: {0:N0}", newTotal);
   }
}
// The example displays the following output:
//   The original byte array:
//      Total elements: 100
//      Length of String Representation: 299
//      Sum of elements: 5,050
//
//   The base 64 string:
//      AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5
//   Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZA==
//
//      Total elements: 100
//      Length of String Representation: 299
//      Sum of elements: 5,050

Как показано в выходных данных из примера, при Convert.FromBase64String восстановлении исходного массива байтов символы разрыва строки игнорируются во время преобразования.

Комментарии

Convert.ToBase64String Методы Convert.ToBase64CharArray преобразуют значение массива из 8-разрядных целых чисел без знака в эквивалентное строковое представление, состоящее из 64 цифр. Строковое представление может содержать один или несколько разрывов строк, где разрыв строки определяется как символ возврата каретки (U+000D), за которым следует символ канала строки (U+000A). Так как разрывы строк считаются пробелами в кодировке base-64, они игнорируются при преобразовании строки в кодировке Base-64 обратно в массив байтов. Разрывы строк просто удобны при отображении закодированной строки для элемента управления или устройства, например окна консоли.

Значения None и InsertLineBreaks значения являются взаимоисключающими. Таким образом, хотя перечисление Base64FormattingOptions отмечено атрибутом FlagsAttribute , не имеет смысла выполнять побитовое сочетание этих двух значений.

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1