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 编码标量值开头,则 Done。 然后 result 包含解码的 RunebytesConsumed 包含用于在输入缓冲区中解码 RuneByte 值的数目。

如果源缓冲区为空,或仅包含独立的 UTF-8 高代理项字符,则 NeedMoreData。 然后 result 包含 ReplacementCharbytesConsumed 包含输入缓冲区的长度。

如果源缓冲区以格式错误的 UTF-8 编码标量值开头,则 InvalidData。 然后 result 包含 ReplacementCharbytesConsumed 包含用于在输入缓冲区解码格式错误的序列的 Byte 值的数目。 .

注解

一般约定是在循环中调用此方法,在循环的每个迭代中按bytesConsumed元素切片source缓冲区。 在循环的每个迭代中, result 如果成功解码,则包含实际标量值;如果无法成功解码数据,则 Rune.ReplacementChar 包含该值。 此模式在循环循环时提供对无效序列的便捷自动 U+FFFD 替换。

适用于