Rune.DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32) Método

Definición

Descodifica Rune al principio del búfer de origen UTF-8 proporcionado.

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

Parámetros

source
ReadOnlySpan<Byte>

Intervalo de bytes codificados UTF-8 de solo lectura.

result
Rune

Cuando finaliza el método, el rune descodificado.

bytesConsumed
Int32

Cuando finaliza el método, el número de bytes leídos para crear el rune.

Devoluciones

OperationStatus

Done si el búfer de origen comienza con un valor escalar codificado UTF-8 válido. result contendrá el elemento Rune descodificado y bytesConsumed el número de valores de Byte utilizados en el búfer de entrada para codificar Rune.

NeedMoreData si el búfer de origen está vacío o contiene solo un carácter suplente alto UTF-8 independiente. result contendrá ReplacementChar y bytesConsumed la longitud del búfer de entrada.

InvalidData si el búfer de origen comienza con un valor escalar codificado UTF-8 defectuoso. result contiene ReplacementChar y bytesConsumed contiene el número de valores de Byte usados en el búfer de entrada para codificar la secuencia defectuosa. .

Comentarios

La convención general consiste en llamar a este método en un bucle, segmentando el source búfer por bytesConsumed elementos en cada iteración del bucle. En cada iteración del bucle, result contiene el valor escalar real si se descodifica correctamente o contiene Rune.ReplacementChar si los datos no se pudieron descodificar correctamente. Este patrón proporciona una sustitución automática automática de U+FFFD de secuencias no válidas mientras recorre en iteración el bucle.

Se aplica a