Rune.DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
제공된 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
메서드가 반환될 때 rune을 만들기 위해 읽은 바이트 수입니다.
반환
소스 버퍼가 올바른 UTF-8 인코딩 스칼라 값으로 시작하는 경우 Done입니다. 그러면 result
에 디코딩된 Rune이 포함되고 bytesConsumed
에는 Rune을 인코딩하기 위해 입력 버퍼에서 사용한 Byte 값의 수가 포함됩니다.
소스 버퍼가 비어 있거나 독립형 UTF-8 상위 서로게이트 문자가 포함되어 있으면 NeedMoreData입니다. 그러면 result
에는 ReplacementChar이 포함되고 bytesConsumed
에는 입력 버퍼의 길이가 포함됩니다.
소스 버퍼가 형식이 잘못된 UTF-8 인코딩 스칼라 값으로 시작되면 InvalidData입니다. 그러면 result
에는 ReplacementChar이 포함되고 bytesConsumed
에는 형식이 잘못된 시퀀스를 인코딩하기 위해 입력 버퍼에서 사용한 Byte 값의 수가 포함되어 있습니다.
.
설명
일반적인 규칙은 루프의 각 반복에서 요소별로 bytesConsumed
버퍼를 조각화하여 루프에서 이 메서드를 호출하는 source
것입니다. 루프 result
의 각 반복에서 성공적으로 디코딩된 경우 실제 스칼라 값을 포함하거나 데이터를 성공적으로 디코딩할 수 없는 경우 해당 값을 포함합니다 Rune.ReplacementChar . 이 패턴은 루프를 반복하는 동안 잘못된 시퀀스의 편리한 자동 U+FFFD 대체를 제공합니다.