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

Definition

Decodiert den Rune 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

Wenn diese Methode zurückgegeben wird, wird der decodierte Rune zurückgegeben.

bytesConsumed
Int32

Wenn diese Methode zurückgegeben wird, wird die Anzahl der gelesenen Bytes zum Erstellen des Runens zurückgegeben.

Gibt zurück

Done wenn der Quellpuffer mit einem gültigen UTF-8-codierten Skalarwert beginnt. resultenthält dann die decodierte , und bytesConsumed enthält die Anzahl der Byte Werte, die im Eingabepuffer zum Codieren der Rune.Rune

NeedMoreData wenn der Quellpuffer leer ist oder nur ein eigenständiges UTF-8-Hoch-Ersatzzeichen enthält. result enthält ReplacementChardann die Länge des Eingabepuffers und bytesConsumed enthält sie.

InvalidData wenn der Quellpuffer mit einem unformierten UTF-8-codierten Skalarwert beginnt. result enthält ReplacementChardann die bytesConsumed Anzahl der Byte Werte, die im Eingabepuffer zum Codieren der unformierten Sequenz verwendet werden. .

Hinweise

Die allgemeine Konvention besteht darin, diese Methode in einer Schleife aufzurufen und den source Puffer nach bytesConsumed Elementen in jeder Iteration der Schleife zu slicieren. Enthält bei jeder Iteration der Schleife den tatsächlichen Skalarwert, result wenn er erfolgreich decodiert wurde, oder enthält Rune.ReplacementChar ihn, wenn die Daten nicht erfolgreich decodiert werden konnten. Dieses Muster bietet eine bequeme automatische U+FFFD-Ersetzung ungültiger Sequenzen beim Durchlaufen der Schleife.

Gilt für: