Rune.DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32) Метод

Определение

Декодирует Rune в начале предоставленного исходного буфера 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

Параметры

source
ReadOnlySpan<Byte>

Диапазон байтов в кодировке UTF-8 только для чтения.

result
Rune

Когда этот метод возвращается, декодированные руна.

bytesConsumed
Int32

При возврате этого метода число байтов, считываемых для создания руна.

Возвращаемое значение

Done Значение , если исходный буфер начинается с допустимого скалярного значения uTF-8. result затем содержит декодированный Runeи bytesConsumed содержит количество значений, используемых Byte в входном буфере для кодирования Rune.

NeedMoreData Значение , если исходный буфер пуст или содержит только автономный символ UTF-8 с высоким суррогатным символом. result затем содержит ReplacementCharи bytesConsumed содержит длину входного буфера.

InvalidData Если исходный буфер начинается с неправильно сформированного скалярного значения UTF-8. result затем содержит ReplacementCharи bytesConsumed содержит количество значений, используемых Byte в входном буфере для кодирования неправильно сформированной последовательности. .

Комментарии

Общее соглашение заключается в вызове этого метода в цикле, срезая source буфер по bytesConsumed элементам в каждой итерации цикла. В каждой итерации цикла содержит реальное скалярное значение, result если оно успешно декодировано, или содержит Rune.ReplacementChar , если данные не удалось успешно декодировать. Этот шаблон обеспечивает удобную автоматическую подстановку U+FFFD недопустимых последовательностей при итерации по циклу.

Применяется к