Condividi tramite


Rune.DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32) Metodo

Definizione

Decodifica l'oggetto Rune all'inizio del buffer di origine UTF-8 specificato.

public:
 static System::Buffers::OperationStatus DecodeFromUtf8(ReadOnlySpan<System::Byte> source, [Runtime::InteropServices::Out] System::Text::Rune % result, [Runtime::InteropServices::Out] int % bytesConsumed);
public static System.Buffers.OperationStatus DecodeFromUtf8 (ReadOnlySpan<byte> source, out System.Text.Rune result, out int bytesConsumed);
static member DecodeFromUtf8 : ReadOnlySpan<byte> * Rune * int -> System.Buffers.OperationStatus
Public Shared Function DecodeFromUtf8 (source As ReadOnlySpan(Of Byte), ByRef result As Rune, ByRef bytesConsumed As Integer) As OperationStatus

Parametri

source
ReadOnlySpan<Byte>

Intervallo di byte con codifica UTF-8 di sola lettura.

result
Rune

Al termine del metodo, la runa decodificata.

bytesConsumed
Int32

Al termine del metodo, il numero di byte letti per creare la runa.

Restituisce

OperationStatus

Done se il buffer di origine inizia con un valore scalare con codifica UTF-8 valido. result contiene quindi il valore Rune decodificato e bytesConsumed contiene il numero di valori Byte usati nel buffer di input per codificare Rune.

NeedMoreData se il buffer di origine è vuoto o contiene solo un carattere surrogato alto UTF-8 autonomo. result contiene quindi ReplacementChar e bytesConsumed contiene la lunghezza del buffer di input.

InvalidData se il buffer di origine inizia con un valore scalare con codifica UTF-8 in formato non valido. result contiene quindi ReplacementChar e bytesConsumed contiene il numero di valori Byte usati nel buffer di input per codificare la sequenza in formato non valido. .

Commenti

La convenzione generale consiste nel chiamare questo metodo in un ciclo, slicing del source buffer in base agli bytesConsumed elementi in ogni iterazione del ciclo. In ogni iterazione del ciclo contiene result il valore scalare reale se decodificato correttamente o contiene Rune.ReplacementChar se i dati non possono essere decodificati correttamente. Questo modello offre una comoda sostituzione automatica U+FFFD di sequenze non valide durante l'iterazione del ciclo.

Si applica a