Partilhar via


Base64.DecodeFromUtf8 Método

Definição

Decodifica a extensão de texto codificado em UTF-8 representado como base 64 em dados binários. Se a entrada não for um múltiplo de 4, ela fará o maior número de decodificações possível até o múltiplo mais próximo de 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

Parâmetros

utf8
ReadOnlySpan<Byte>

A extensão de entrada que contém o texto codificado em UTF-8 na base 64 que precisa ser decodificado.

bytes
Span<Byte>

A extensão de saída que contém o resultado da operação, ou seja, os dados binários decodificados.

bytesConsumed
Int32

Quando esse método retorna, contém o número de bytes de entrada consumidos durante a operação. Isso pode ser usado para fatiar a entrada para chamadas subsequentes, se necessário.

bytesWritten
Int32

Quando esse método retorna, contém o número de bytes gravados no intervalo de saída. Isso pode ser usado para fatiar a saída para chamadas subsequentes, se necessário.

isFinalBlock
Boolean

true (padrão) para indicar que o intervalo de entrada contém os dados inteiros a serem decodificados. false para indicar que o intervalo de entrada contém dados parciais com mais dados a seguir.

Retornos

Um dos valores de enumeração que indica o status da operação de decodificação.

Comentários

O valor retornado pode ser o seguinte:

  • OperationStatus.Done: o processamento de todo o intervalo de entrada foi bem-sucedido.
  • OperationStatus.DestinationTooSmall: não há espaço suficiente no intervalo de saída para gravar a entrada decodificada.
  • OperationStatus.NeedMoreData: isFinalBlock é false e a entrada não é um múltiplo de 4. Caso contrário, a entrada parcial será considerada InvalidData.
  • OperationStatus.InvalidData: a entrada contém bytes fora do intervalo de base 64 esperado ou está incompleta (ou seja, não um múltiplo de 4) e isFinalBlock é true. No .NET 7 e em versões anteriores, esse valor também pode indicar que a entrada tem caracteres inválidos ou mais de dois caracteres de preenchimento.

Aplica-se a