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

當此方法傳回時,會是讀取以建立 rune 的位元組數目。

傳回

OperationStatus

如果來源緩衝區是以有效的 UTF-8 編碼純量值開頭,則為 Doneresult 則會包含已解碼的 Rune,且 bytesConsumed 會包含輸入緩衝區中用來編碼 RuneByte 值數目。

如果來源緩衝區是空的或只包含獨立 UTF-8 高代理字元,則為 NeedMoreDataresult 則會包含 ReplacementChar,且 bytesConsumed 會包含輸入緩衝區的長度。

如果來源緩衝區是以語式錯誤的 UTF-8 編碼純量值開頭,則為 InvalidDataresult 則會包含 ReplacementChar,且 bytesConsumed 會包含輸入緩衝區中用來編碼語式錯誤序列的 Byte 值數目。 .

備註

一般慣例是在迴圈中呼叫這個方法,在迴圈的每個反復專案上依 bytesConsumed 元素切割 source 緩衝區。 在迴圈的每個反復專案上, result 如果成功解碼,則包含實際純量值,如果無法成功解碼資料,則包含 Rune.ReplacementChar 。 此模式提供方便的自動 U+FFFD 替代無效序列,同時逐一查看迴圈。

適用於