Rune.DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Avkodar Rune i början av den angivna UTF-8-källbufferten.
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
Parametrar
- source
- ReadOnlySpan<Byte>
Ett skrivskyddat UTF-8-kodat byteintervall.
- result
- Rune
När den här metoden returneras avkodad runa.
- bytesConsumed
- Int32
När den här metoden returnerar, antalet byte som lästs för att skapa körningen.
Returer
Done om källbufferten börjar med ett giltigt UTF-8-kodat skalärvärde.
result innehåller sedan det avkodade Runeoch bytesConsumed innehåller antalet Byte värden som används i indatabufferten Runeför att koda .
NeedMoreData om källbufferten är tom eller endast innehåller ett fristående UTF-8-tecken med hög surrogatfärg.
result innehåller ReplacementCharsedan , och bytesConsumed innehåller längden på indatabufferten.
InvalidData om källbufferten börjar med ett felaktigt utf-8-kodat skalärvärde.
result innehåller ReplacementCharsedan och bytesConsumed innehåller antalet Byte värden som används i indatabufferten för att koda den illa utformade sekvensen.
.
Kommentarer
Den allmänna konventionen är att anropa den här metoden i en loop och dela bufferten source efter bytesConsumed element på varje iteration av loopen. På varje iteration av loopen result innehåller det verkliga skalärvärdet om det har avkodats eller innehåller Rune.ReplacementChar om data inte kunde avkodas. Det här mönstret ger bekväm automatisk U+FFFD-ersättning av ogiltiga sekvenser när du itererar genom loopen.