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

このメソッドが返されるときに、デコードされたルーン。

bytesConsumed
Int32

このメソッドが戻るときに、ルーンを作成するために読み取られたバイト数。

返品

Done ソース バッファーが有効な UTF-8 でエンコードされたスカラー値で始まる場合。 resultにはデコードされたRuneが格納され、bytesConsumedには、Runeをエンコードするために入力バッファーで使用されるByte値の数が格納されます。

NeedMoreData ソース バッファーが空であるか、スタンドアロンの UTF-8 上位サロゲート文字のみが含まれている場合。 result には ReplacementCharが格納され、 bytesConsumed には入力バッファーの長さが含まれます。

InvalidData ソース バッファーが不適切な形式の UTF-8 でエンコードされたスカラー値で始まる場合。 result 次に、 ReplacementCharが格納され、 bytesConsumed には、正しくない形式のシーケンスをエンコードするために入力バッファーで使用される Byte 値の数が格納されます。 .

注釈

一般的な規則は、ループ内でこのメソッドを呼び出し、ループの各反復処理で要素をbytesConsumedしてsource バッファーをスライスすることです。 ループの各反復処理で、 result には、正常にデコードされた場合は実際のスカラー値が含まれます。または、データを正常にデコードできなかった場合は Rune.ReplacementChar が含まれます。 このパターンは、ループの反復処理中に無効なシーケンスの自動 U+FFFD 置換を便利に提供します。

適用対象