Freigeben über


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

Definition

Decodiert das Rune-Element am Anfang des bereitgestellten UTF-8-Quellpuffers.

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

Parameter

source
ReadOnlySpan<Byte>

Eine schreibgeschützte UTF-8-codierte Bytespanne.

result
Rune

Die decodierte Rune bei Rückgabe dieser Methode.

bytesConsumed
Int32

Die Anzahl von Bytes, die bei der Erstellung der Rune gelesen werden, wenn diese Methode zurückgegeben wird.

Gibt zurück

OperationStatus

Done, wenn der Quellpuffer mit einem gültigen, UTF-8-codierten Skalarwert beginnt. result enthält dann die decodierte Rune-Eigenschaft und bytesConsumed die Anzahl an Byte-Werten, die in dem Eingabepuffer zur Codierung der Rune-Struktur verwendet wird.

NeedMoreData, wenn der Quellpuffer leer ist oder nur ein eigenständiges hohe UTF-8-Ersatzzeichen enthält. result enthält dann ReplacementChar und bytesConsumed enthält die Länge des Eingabepuffers.

InvalidData, wenn der Quellpuffer mit einem falsch formatierten, UTF-8-codierten Skalarwert beginnt. result enthält dann ReplacementChar und bytesConsumed enthält die Anzahl von Byte-Werten, die im Eingabepuffer zum Codieren der falsch formatierten Sequenz verwendet werden. .

Hinweise

Die allgemeine Konvention besteht darin, diese Methode in einer Schleife aufzurufen, die den source Puffer nach bytesConsumed Elementen in jeder Iteration der Schleife slicing. Enthält bei jeder Iteration der Schleife result den echten Skalarwert, wenn er erfolgreich dekodiert wurde oder Rune.ReplacementChar enthält, ob die Daten nicht erfolgreich entschlüsselt werden konnten. Dieses Muster bietet eine bequeme automatische U+FFFD-Substitution von ungültigen Sequenzen während der Iterierung durch die Schleife.

Gilt für