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


Base64.DecodeFromUtf8 Метод

Определение

Декодирует диапазон текста UTF-8, представленного в кодировке Base64, в двоичные данные. Если размер исходных данных не кратен 4, декодируется максимально возможный объем текста до ближайшего кратного 4.

public static System.Buffers.OperationStatus DecodeFromUtf8 (ReadOnlySpan<byte> utf8, Span<byte> bytes, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true);
static member DecodeFromUtf8 : ReadOnlySpan<byte> * Span<byte> * int * int * bool -> System.Buffers.OperationStatus
Public Shared Function DecodeFromUtf8 (utf8 As ReadOnlySpan(Of Byte), bytes As Span(Of Byte), ByRef bytesConsumed As Integer, ByRef bytesWritten As Integer, Optional isFinalBlock As Boolean = true) As OperationStatus

Параметры

utf8
ReadOnlySpan<Byte>

Исходный диапазон, который содержит текст UTF-8 в кодировке Base64, предназначенный для декодирования.

bytes
Span<Byte>

Целевой диапазон, который содержит результат операции, то есть декодированные двоичные данные.

bytesConsumed
Int32

При возврате этого метода содержит количество входных байтов, используемых во время операции. Если потребуется, так можно отделить сегмент исходных данных для последующих вызовов.

bytesWritten
Int32

При возврате этого метода содержит количество байтов, записанных в выходной диапазон. Если потребуется, так можно отделить сегмент выходных данных для последующих вызовов.

isFinalBlock
Boolean

true (по умолчанию), чтобы указать, что входной диапазон содержит все данные для декодирования. false значение , чтобы указать, что входной диапазон содержит частичные данные с дополнительными данными.

Возвращаемое значение

Одно из значений перечисления, которое указывает результат выполнения операции декодирования.

Комментарии

Возвращаемое значение может быть следующим:

  • OperationStatus.Done: обработка всего входного диапазона выполнена успешно.
  • OperationStatus.DestinationTooSmall: в выходном диапазоне недостаточно места для записи декодированных входных данных.
  • OperationStatus.NeedMoreData: isFinalBlock имеет значение false , а входные данные не кратно 4. В противном случае частичные входные данные считаются InvalidData.
  • OperationStatus.InvalidData: входные данные содержат байты за пределами ожидаемого диапазона base 64 или являются неполными (т. е. не кратными 4) и isFinalBlock имеют значение true. В .NET 7 и более ранних версиях это значение также может указывать на то, что входные данные имеют недопустимые или более двух символов заполнения.

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