Rune.DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32) 메서드

정의

제공된 UTF-8 원본 버퍼의 시작 부분에서 디코딩 Rune 합니다.

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

이 메서드가 반환되면 디코딩된 rune입니다.

bytesConsumed
Int32

이 메서드가 반환되면 룬을 만들기 위해 읽은 바이트 수입니다.

반품

Done 원본 버퍼가 유효한 UTF-8로 인코딩된 스칼라 값으로 시작하는 경우 result그런 다음 디코딩된 RunebytesConsumed 값을 포함하고 입력 버퍼에서 인코딩Rune하는 데 사용되는 값 수를 Byte 포함합니다.

NeedMoreData 원본 버퍼가 비어 있거나 독립 실행형 UTF-8 상위 서로게이트 문자만 포함하면 입니다. result 에는 ReplacementChar입력 버퍼의 길이가 포함됩니다 bytesConsumed .

InvalidData 원본 버퍼가 잘못된 형식의 UTF-8로 인코딩된 스칼라 값으로 시작하는 경우 result에는 ReplacementChar잘못된 형식의 Byte 시퀀스를 인코딩하기 위해 입력 버퍼에 사용되는 값 수가 포함됩니다bytesConsumed. .

설명

일반적인 규칙은 루프의 각 반복에서 요소별로 bytesConsumed 버퍼를 조각화하여 루프에서 이 메서드를 호출하는 source 것입니다. 루프 result 의 각 반복에서 성공적으로 디코딩된 경우 실제 스칼라 값을 포함하거나 데이터를 성공적으로 디코딩할 수 없는 경우 이를 포함합니다 Rune.ReplacementChar . 이 패턴은 루프를 반복하는 동안 잘못된 시퀀스의 편리한 자동 U+FFFD 대체를 제공합니다.

적용 대상