Język

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

Definicja

Dekoduje wartość Rune na początku dostarczonego buforu źródłowego UTF-8.

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

Parametry

source
ReadOnlySpan<Byte>

Zakres bajtów zakodowany tylko do odczytu UTF-8.

result
Rune

Gdy ta metoda zostanie zwrócona, zdekodowany element rune.

bytesConsumed
Int32

Gdy ta metoda zwróci wartość , liczba bajtów odczytanych w celu utworzenia elementu rune.

Zwraca

Done jeśli bufor źródłowy rozpoczyna się od prawidłowej zakodowanej wartości skalarnej UTF-8. resultnastępnie zawiera dekodowane Runewartości i bytesConsumed zawiera liczbę wartości używanych Byte w buforze wejściowym w celu zakodowania .Rune

NeedMoreData jeśli bufor źródłowy jest pusty lub zawiera tylko autonomiczny znak zastępczy UTF-8. result ReplacementCharzawiera element i bytesConsumed zawiera długość buforu wejściowego.

InvalidData jeśli bufor źródłowy rozpoczyna się od źle sformułowanej wartości skalarnej UTF-8. result ReplacementCharzawiera element i bytesConsumed zawiera liczbę wartości używanych Byte w buforze wejściowym w celu zakodowania nieprawidłowo sformułowanej sekwencji. .

Uwagi

Ogólna konwencja polega na wywołaniu tej metody w pętli, wycięcie source buforu przez bytesConsumed elementy w każdej iteracji pętli. W każdej iteracji pętli zawiera rzeczywistą wartość skalarną, result jeśli została pomyślnie zdekodowana lub zawiera Rune.ReplacementChar , czy nie można pomyślnie zdekodować danych. Ten wzorzec zapewnia wygodne automatyczne podstawianie U+FFFD nieprawidłowych sekwencji podczas iterowania przez pętlę.

Dotyczy